Scheduling Automatic Game Server Restarts
Scheduled restarts clear memory leaks, apply updates, and keep your server running smoothly.
Method 1 — Cron + screen (Simple)
crontab -e
# Restart the server every day at 5 AM:
0 5 * * * screen -S minecraft -X stuff "stop$(printf '
')" && sleep 30 && cd ~/server && screen -dmS minecraft java -Xmx4G -jar server.jar --nogui
Method 2 — systemd Service with Restart Policy
nano /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=java -Xmx4G -Xms1G -jar server.jar --nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
systemctl enable minecraft
systemctl start minecraft
Add a scheduled restart with a systemd timer:
nano /etc/systemd/system/minecraft-restart.timer
[Unit]
Description=Restart Minecraft daily
[Timer]
OnCalendar=*-*-* 05:00:00
Persistent=true
[Install]
WantedBy=timers.target
nano /etc/systemd/system/minecraft-restart.service
[Unit]
Description=Restart Minecraft
[Service]
Type=oneshot
ExecStart=systemctl restart minecraft
systemctl enable minecraft-restart.timer
systemctl start minecraft-restart.timer
LinuxGSM Built-In Monitor
If you use LinuxGSM, the monitor command automatically restarts a crashed server:
crontab -e
# Check every 5 minutes:
*/5 * * * * /home/steam/csgoserver monitor > /dev/null 2>&1