SCP: Secret Laboratory
Updated May 1, 2026
Running SCP:SL Server as a systemd Service
Configure an SCP:SL dedicated server as a systemd service for automatic startup on boot and crash recovery. Includes a complete unit file for the LocalAdmin launcher.
SCP:SLSCP Secret Laboratorysystemdserviceauto-startLinuxLocalAdmin
SCP:SL Server as a systemd Service
Running LocalAdmin as a systemd service keeps your server running after SSH sessions end and restarts it automatically after crashes.
Prerequisites
Create a dedicated user for the server:
sudo useradd -m -s /bin/bash scpsl
sudo su - scpsl
Install SteamCMD and the server files as this user to /home/scpsl/scpsl/.
Unit File
Create /etc/systemd/system/scpsl.service:
[Unit]
Description=SCP Secret Laboratory Dedicated Server
After=network.target
[Service]
Type=simple
User=scpsl
Group=scpsl
WorkingDirectory=/home/scpsl/scpsl
# Start LocalAdmin on port 7777 in no-screen mode
ExecStart=/home/scpsl/scpsl/LocalAdmin 7777
Restart=on-failure
RestartSec=15
StandardOutput=journal
StandardError=journal
SyslogIdentifier=scpsl
# Allow time for graceful shutdown
TimeoutStopSec=60
[Install]
WantedBy=multi-user.target
Enabling and Starting
sudo systemctl daemon-reload
sudo systemctl enable scpsl
sudo systemctl start scpsl
sudo systemctl status scpsl
Viewing Logs
# Live log stream
sudo journalctl -u scpsl -f
# Last 100 lines
sudo journalctl -u scpsl -n 100
# Filter for errors only
sudo journalctl -u scpsl -p err
Managing the Service
sudo systemctl stop scpsl # Stop the server
sudo systemctl restart scpsl # Restart
sudo systemctl status scpsl # Check status and recent logs
Running Multiple Instances
To run a second server instance on port 7778, create a second service file:
sudo cp /etc/systemd/system/scpsl.service /etc/systemd/system/scpsl-7778.service
Edit scpsl-7778.service, changing:
ExecStart=/home/scpsl/scpsl/LocalAdmin 7778
SyslogIdentifier=scpsl-7778
Then enable and start:
sudo systemctl daemon-reload
sudo systemctl enable scpsl-7778
sudo systemctl start scpsl-7778
Automatic Server Updates
Add a SteamCMD update wrapper before launching LocalAdmin:
# /home/scpsl/start-scpsl.sh
#!/bin/bash
/home/scpsl/steamcmd/steamcmd.sh \
+force_install_dir /home/scpsl/scpsl \
+login anonymous \
+app_update 996560 \
+quit
exec /home/scpsl/scpsl/LocalAdmin 7777
chmod +x /home/scpsl/start-scpsl.sh
Update ExecStart in the service file:
ExecStart=/home/scpsl/start-scpsl.sh
Back to Knowledgebase
Need help?
Submit a Ticket →