Unturned Updated May 14, 2026

Unturned Server Linux Systemd Service

Run an Unturned dedicated server as a Linux systemd service for automatic startup on boot, crash recovery, and log management via journalctl.

UnturnedLinuxsystemdserviceautostartServerHelper

Unturned Linux Systemd Service

Running Unturned as a systemd service provides automatic boot startup, crash recovery, and centralized log management.


Create a Dedicated User

Never run game servers as root:

sudo useradd -r -m -d /opt/unturned -s /sbin/nologin unturned
sudo chown -R unturned:unturned /opt/unturned-server

Create the Startup Script

Create /opt/unturned-server/start.sh:

#!/bin/bash
cd /opt/unturned-server/steamapps/common/U3DS
exec ./ServerHelper.sh +InternetServer/MyServer -ThreadedConsole

Make it executable:

chmod +x /opt/unturned-server/start.sh
chown unturned:unturned /opt/unturned-server/start.sh

Replace MyServer with your actual server name from Commands.dat.


Create the Systemd Unit File

Create /etc/systemd/system/unturned.service:

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

[Service]
Type=simple
User=unturned
Group=unturned
WorkingDirectory=/opt/unturned-server/steamapps/common/U3DS
ExecStart=/opt/unturned-server/start.sh
Restart=on-failure
RestartSec=20s
StandardOutput=journal
StandardError=journal
SyslogIdentifier=unturned-server

# Prevent core dumps and limit file handles
LimitCORE=0
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

Enable and Start

sudo systemctl daemon-reload
sudo systemctl enable unturned
sudo systemctl start unturned

Managing the Service

# Status
sudo systemctl status unturned

# Live logs
sudo journalctl -u unturned -f

# Stop
sudo systemctl stop unturned

# Restart
sudo systemctl restart unturned

Scheduled Restart with a Timer

Daily restarts clear accumulated memory. Create /etc/systemd/system/unturned-restart.service:

[Unit]
Description=Restart Unturned Server

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart unturned

Create /etc/systemd/system/unturned-restart.timer:

[Unit]
Description=Daily Unturned Server Restart

[Timer]
OnCalendar=*-*-* 04:00:00
Persistent=true

[Install]
WantedBy=timers.target
sudo systemctl enable --now unturned-restart.timer

Automatic Update and Restart

Pair the systemd service with a SteamCMD update script that runs before the server restarts:

# /opt/unturned-server/update.sh
#!/bin/bash
systemctl stop unturned
steamcmd +login anonymous +force_install_dir /opt/unturned-server \
  +app_update 1110390 validate +quit
systemctl start unturned

Schedule this in a separate timer or cron job to keep the server updated automatically.