如何在启动时自动运行此脚本

时间:2017-03-02 09:22:31

标签: linux bash ubuntu cron game-development

我的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

2 个答案:

答案 0 :(得分:0)

有不同的方法可以做到这一点,最简单的方法是将5行代码放入:

/etc/rc.local

它将在每个操作系统启动时自动执行 你应该把你的代码行放在这一行:

exit 0

答案 1 :(得分:0)

Ubuntu 16.04使用systemd作为init系统,请按照以下步骤操作:

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

现在重新启动并测试它。