Artur Bieniek
Artur Bieniek

Reputation: 151

How can I run this script automatically on startup

I have a game server on my VPS, but i have a strong problem. When it reboots(for technical reasons or something) the game server doesn't start automatically. I use this script, which is located in /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

I have tried adding it to crontab, startup files and a lot more and nothing worked. Operating system on the VPS is Ubuntu Server 64-bit 14.04 upgraded to 16.04

Upvotes: 1

Views: 7494

Answers (2)

Farhad Farahi
Farhad Farahi

Reputation: 39277

Ubuntu 16.04 uses systemd as init system, Follow these steps:

chmod 744 /path/to/script

Now create a unit file:

vim /etc/systemd/system/csgo.service

[Unit]
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/path/to/script

[Install]
WantedBy=default.target

Set permissions:

chmod 664 /etc/systemd/system/csgo.service

Reload and enable the service:

systemctl daemon-reload
systemctl enable csgo.service

Now reboot and test it out.

Upvotes: 2

ali
ali

Reputation: 139

there are different ways of doing this , the easiest way is to put 5 line of your code in :

/etc/rc.local

it will be executed automatically on each os boot you should put your lines of code under this line:

exit 0

Upvotes: 0

Related Questions