Game Hosting home

Palworld Server Autostart: Windows and Linux Setup

Set up Palworld server startup without a login, recovery after a crash, and safe checks for Task Scheduler, NSSM, and systemd.

Difficulty
NormalDifficulty Normal
Time to do
12 min
Reading
8 min
Updated
By
Game Hosting team

You will need

  • An installed Palworld Dedicated Server tool in a fixed folder
  • A Windows administrator account or a Linux host with systemd
  • Your server admin password and a quiet maintenance window
  • A recent backup before testing an unexpected stop

A Palworld server can start without anyone signing in if Windows Task Scheduler or Linux systemd launches its dedicated-server program at boot. If you also want recovery after an unexpected exit, run it under a service manager such as NSSM on Windows or systemd on Linux. The computer still has to stay powered on, awake and connected to the network. This guide shows the difference between boot startup and crash recovery, how to stop the server deliberately, and how to check that its process came back.

Decide what headless means for your Palworld server#

For this guide, headless means the dedicated server runs without an interactive desktop login or a game window. Pocketpair distributes the dedicated server separately from the Palworld client, so the server computer does not need to keep the game open. It does still need power, a working network and settings that allow the server process to run.

The dedicated-server route overview compares self-hosting and renting. If you already chose to host at home, choose how the process should be managed:

Manager Starts after computer boot? Watches for a crashed process?
Windows Task Scheduler boot task Yes Not by itself
NSSM Windows service Yes, when set to Automatic Yes, based on its configured exit action
Linux systemd service Yes, after you enable the unit Yes, with Restart=on-failure

A boot trigger and a service solve different parts of “the server should just be on.” Task Scheduler can launch the program without waiting for a user to log in. A service manager can also supervise the child process and react when it exits. If the PC sleeps, shuts down or loses its internet connection, none of these options can keep friends connected. Disable sleep for the server machine and verify its network separately.

Start PalServer at Windows boot with Task Scheduler#

Use a boot trigger when you only need Windows to launch PalServer after startup. It is different from an “At log on” trigger: Microsoft documents the boot trigger as firing when the Task Scheduler service starts during the operating-system boot. A boot task does not automatically supervise the process after it starts, so use NSSM in the next section when crash recovery matters.

  1. Open Task Scheduler as an administrator and choose Create Task.
  2. On General, give the task a clear name, select Run whether user is logged on or not, and enable Run with highest privileges if your server setup needs it.
  3. On Triggers, add At startup. A short delay can help if the PC needs time to bring up networking.
  4. On Actions, choose Start a program. Browse to the installed PalServer.exe. Fill Start in with the directory that contains the executable; do not leave it blank if the server uses files or relative paths from that directory.
  5. Check Conditions for restrictions that would prevent a dedicated machine from starting, then save the task and enter the Windows account password if requested.

Use the same working directory as your manual server command, and keep any launch arguments you actually need. The Windows dedicated-server installation guide covers the install path this task should point to. Run the task once from Task Scheduler and inspect Last Run Result, its history and the PalServer log. A task result only says Windows launched the action; also confirm that the PalServer process exists and that your chosen server port is listening. If friends must connect from outside the house, test that path separately.

Run the Windows server as an NSSM service#

NSSM (the Non-Sucking Service Manager) wraps a normal Windows program as a service. That means it can start without a desktop session and can react when PalServer exits. Download NSSM from its official usage site, put nssm.exe in a stable location, then use an elevated terminal to register your server. Substitute the folder where you installed the dedicated server:

powershell
nssm install Palworld "C:\Palworld\PalServer.exe"
nssm set Palworld AppDirectory "C:\Palworld"
nssm set Palworld AppExit Default Restart
nssm set Palworld AppExit 0 Exit
nssm start Palworld

The install command opens NSSM’s service setup if you omit the application path; the example supplies it directly. AppDirectory sets the working folder. The default exit action restarts an unexpected exit, while the explicit 0 Exit action lets a normal Palworld shutdown stay stopped for maintenance. If your PalServer command needs arguments, add them in NSSM’s Arguments field during setup. Check the service with nssm status Palworld or Windows Services.

Set I/O output paths in NSSM if you want standard output and errors saved to files. Its rotation options can cap or roll those files; choose a writable folder with enough space and keep NSSM at the same path after registering the service. A Windows service may report “Running” while the game server is still initializing, so confirm the startup message in its log and wait for the server port to listen before calling it ready.

Create a Linux systemd unit for PalServer#

On Linux, systemd can start the server at boot and restart it after a failure. First make sure the service account can read the installation and write to the Palworld save folders. Create /etc/systemd/system/palworld.service with the real paths and account for your install:

ini
[Unit]
Description=Palworld Dedicated Server
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=palworld
WorkingDirectory=/opt/palworld
ExecStart=/opt/palworld/PalServer.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Use the service account and folder you prepared, and keep ExecStart in the foreground rather than starting it through an interactive shell. Do not copy old performance flags from an unrelated guide without checking current Pocketpair documentation; launch arguments and defaults can change between updates.

After saving the unit, tell systemd to read it and enable startup:

bash
sudo systemctl daemon-reload
sudo systemctl enable --now palworld.service
sudo systemctl status --no-pager palworld.service

enable links the service into the boot target; --now starts it immediately. Restart=on-failure tells systemd to restart an abnormal exit, subject to systemd’s start-rate limit. It does not restart a deliberate stop, and it cannot make a sleeping computer boot. If a broken configuration causes a restart loop, inspect the journal, fix the unit, and clear the failed state with sudo systemctl reset-failed palworld.service before trying again.

Save the world before a planned shutdown#

An automatic restart after a crash is not the same as a safe Palworld save. Pocketpair documents /Save, delayed /Shutdown [Seconds] [MessageText], and /DoExit; the last command force-stops the server. The documentation does not promise that a Windows service stop or a Unix signal writes a clean world save.

Before a planned update or maintenance window, use an authorized Palworld admin account to run /Save, then give players notice with a delayed shutdown such as /Shutdown 60 Server maintenance. Let the server exit before updating its files. If you want to start it again after the work, start the service explicitly with nssm start Palworld or sudo systemctl start palworld.service. NSSM’s 0 Exit setting and systemd’s on-failure behavior are intended to leave a clean exit stopped.

Keep an independent backup before changing server files. If the game or computer has already crashed, do not treat a new process as proof that the last world save is intact. Inspect the save and logs before inviting players back. Pocketpair’s official server commands reference lists the supported commands and their syntax.

Read service logs and watch for repeated failures#

For a systemd service, follow the manager’s output with:

bash
sudo journalctl -u palworld.service -f

Use sudo systemctl status palworld.service to see the current state and recent log lines. NSSM can redirect the application’s standard output and standard error to files, then rotate them using its I/O settings. Choose a persistent folder the service account can write to; a path that exists only in your desktop session can leave the service without useful logs.

After a restart, look for Palworld’s startup message and check whether systemd or NSSM reports a new process. Repeated exits usually mean the service is faithfully restarting a problem, not fixing it. Read the first error in the log, check the executable and working-directory paths, and confirm there is enough free disk space. If you are tracking memory, compare observations from the same world over time; this guide does not establish a universal memory threshold or prove a memory leak. For structured diagnosis, use the Palworld memory guide.

Test startup and crash recovery before relying on it#

Test while no one is playing and after you have a backup. First confirm the manager is enabled, start the service manually, then check the manager state, PalServer process, startup log and UDP 8211 listener. A listening socket shows that the process opened the game port; it does not prove your router or a friend’s client can reach it.

On Linux, check whether the unit is enabled with systemctl is-enabled palworld.service, and inspect restart count and logs after simulating a crash on a disposable world. On Windows, check that Task Scheduler recorded the boot task, or that NSSM reports the service running after you terminate only the PalServer child process. Do not use a forced kill on a live world: it tests recovery, not saving. Then perform a real reboot during a maintenance window and verify the server starts before telling friends to join.

I tested the Linux process-manager path on Ubuntu 26.04 under WSL with Palworld Dedicated Server build v1.0.5.102999. The persistent systemd unit was enabled for multi-user.target and started PalServer; after I killed the disposable process with SIGKILL, systemd restarted it after five seconds, reported one restart, and UDP 8211 listened again. I did not reboot WSL, test Task Scheduler or NSSM, connect a game client, or test save recovery. Those checks remain part of your own setup verification.

If you would rather remove the home-PC upkeep, Game Hosting’s Palworld service puts settings and scheduled restarts in an integrated panel, with three free backup slots. The restart schedule helps with planned maintenance; it is not a guarantee that every crash or unsaved change can be recovered.

Quest complete

Before you invite your friends, check that the intended world loaded and that each player can connect. If those checks pass, you're ready for a session; if you'd rather not keep a PC on, that's what we're here for.

Quick answers

How do I make a Palworld server start automatically?

Use a Task Scheduler boot trigger on Windows for startup, or enable a systemd service on Linux. Use NSSM or systemd if you also want a manager to restart an unexpectedly exited process.

Can you run a Palworld server as a Windows service?

Yes. NSSM can wrap PalServer.exe as a Windows service; set its application directory and configure its exit action before relying on it.

How do I auto restart a Palworld server after a crash?

Configure NSSM to restart the application after a crash on Windows, or set Restart=on-failure in a systemd unit on Linux. A Task Scheduler boot trigger alone does not watch for crashes.