在
我的VPS上有一个游戏服务器,但是我有一个很大的问题。当它重新启动(由于技术原因或某些内容)时,游戏服务器不会自动启动。我使用此脚本,该脚本位于/home/steam/csgo-ds中:
#!/bin/sh
ln -s /home/steam/csgo-ds/csgo/*.dem /var/www/html/
ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
cd /home/steam/csgo-ds
chmod 777 * -R
screen -S "CS:GO Server" ./srcds_run -game csgo -usercon +game_type 0 +game_mode 0 -tickrate 64 -maxplayers 24 -maxplayers_override 24 +ip 188.116.46.148 -port 27015 +sv_setsteamaccount "XXXXX" -exec server.cfg +tv_enable 1 +tv_maxclients 0 +tv_port 27020 +tv_advertise_watchable 0 +map jb_dust2_final2
我尝试将其添加到crontab,启动文件等等,而没有任何效用。VPS上的操作系统是Ubuntu Server 64位14.04升级到16.04
chmod 744 /path/to/script
现在创建一个单元文件:
vim /etc/systemd/system/csgo.service
[Unit]
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/path/to/script
[Install]
WantedBy=default.target
设置权限:
chmod 664 /etc/systemd/system/csgo.service
重新加载并启用服务:
systemctl daemon-reload
systemctl enable csgo.service
现在重新启动并进行测试。
有不同的方法来做到这一点,最简单的方法是将代码的5行放入:
中/etc/rc.local
它将在每个OS启动上自动执行您应该将代码行放在此行中:
exit 0