Guides/Automatically Start Dedicated Server (Linux)

The following is a script that can be used to start a dedicated server on boot/reboot of the host. This was setup after noticing my Ubuntu Server 14.0 had rebooted after updates which in-turn killed the DST dedicated server.
If you have not yet setup a dedicated server on a Linux machine I would recommend using the following as reference. This was used to setup DST on my Linux server: http://dont-starve-game.wikia.com/wiki/Guides/Simple_Dedicated_Server_Setup
You'll need to create the file in your /etc/init.d/ directory (command supplied below). If you followed the above guide then the directories should be the same. I named the file "start_dst" for my own reference you may change it "name".sh with out the quotes.
Create the file:
 sudo vim /etc/init.d/start_dst.sh
Script:
 !i/bin/sh
 
 ##BEGIN INIT INFO
 # Provides:dst
 # Short-Description: Don't starve server
 # Description: Starts a Dont Starve Together server
 ### END INIT INFO
 
 NAME="Dont Starve together"
 #The user that you installed DST server as
 USER="steam"
 SCREENREF="DST"
 #should be the same as the dedicated server's install directory
 BINARYPATH="/home/steam/steamapps/DST/bin"
 BINARYNAME="dontstarve_dedicated_server_nullrenderer"
 PIDFILE="dstserver.pid"
 
 cd "$BINARYPATH"
 
 
 running() {
 if [ -n "`pgrep -f $BINARYNAME`" ]; then
 return 0
 else
 return 1
 fi
 }
 
 start() {
 if ! running; then
 echo -n "Starting the $NAME server... "
 start-stop-daemon --start --chuid $USER --user $USER --chdir $BINARYPATH --exec "/usr/bin/screen" -- -dmS $SCREENREF $BINARYPATH
 pgrep -f $BINARYNAME > $PIDFILE
 if [ -s $PIDFILE ]; then
 echo "Done"
 else
 echo "Failed"
 rm $PIDFILE
 fi
 else
 echo "The $NAME server is already started."
 fi
 }
 
 stop() {
 if running; then
 echo -n "Stopping the $NAME server... "
 kill `cat $PIDFILE`
 while running; do
 sleep 1
 done
 rm $PIDFILE
 echo "Done"
 else
 echo "The $NAME server is already stopped."
 fi
 }
 
 case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart)
 stop
 start
 ;;
 status)
 if running; then
 echo "The $NAME server is started."
 else
 echo "The $NAME server is stopped."
 fi
 ;;
 *)
 echo "Usage: $0 (start|stop|restart|status)"
 exit 1
 esac
 exit 0
Navigate to the directory you created the file ealrier.
 cd /etc/init.d/
updates the file to be excutable:
 sudo chmod +x start_dst.sh
allow the script to run on boot:
 sudo update-rc.d start_dst.sh defaults
I used the script supplied on this page for reference modifying the INIT information to point to the appropriate directories for DST. https://wiki.teamfortress.com/wiki/Linux_dedicated_server
Category:Guides
Category:Dedicated Servers