FANDOM


Icon Book This article may contain instructional language and subjective recommendations. Readers should read the content carefully, and follow accordingly.

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

Game Guides
Basic Getting StartedThe Big PictureAll About Night
DLC Don't Starve in Reign of GiantsThe Ultimate Reign of Giants Starting GuideSurviving Shipwrecked
Camping Base CampFrog Pond CampSelf-sustaining SettlementMarsh CampCamping UndergroundSummer Cave Base
Farming Gold Nugget FarmRenewable FarmingFarmingNightmare Fuel FarmingFarming the CavesSlurtle SlimeKrampiiFire Farm
Survival Adventure ModeMob KillingHow To not starveHow to surviveHound Wave SurvivalMushroom GuideBoss DropsSpelunking GuideWinter GuideCrock Pot DishesPanic Room GuideJust SpawnedAdvanced WorldWorld vs CavesThe Ultimate Guide to Infinite Survival
Technical Physical Damage AbsorptionConsole Commands(Automatically Start Dedicated Server (Linux)Simple Dedicated Server SetupDon’t Starve Together Dedicated Servers Don't Starve Together icon)
Characters WillowWolfgangWendyWickerbottom's BooksWoodie's CurseWigfridMaxwell