Add distro-agnostic systemd init script

This commit is contained in:
Ben Peddell 2015-06-25 21:07:58 +10:00
parent 9bfdc8ccba
commit 9ca3d5f3c5
2 changed files with 91 additions and 0 deletions

View File

@ -61,8 +61,13 @@ if [ ! -z "$1" ]; then
echo "rc-update del arkmanager default" echo "rc-update del arkmanager default"
fi fi
elif [[ /etc/systemd/system.conf ]]; then # used by systemd elif [[ /etc/systemd/system.conf ]]; then # used by systemd
mkdir -p /usr/libexec/arkmanager
cp systemd/arkdaemon.init "/usr/libexec/arkmanager/arkmanager.init"
chmod +x "/usr/libexec/arkmanager/arkmanager.init"
cp systemd/arkdeamon.service /etc/systemd/system/arkmanager.service cp systemd/arkdeamon.service /etc/systemd/system/arkmanager.service
systemctl enable arkmanager.service systemctl enable arkmanager.service
echo "Ark server will now start on boot, if you want to remove this feature run the following line"
echo "systemctl disable arkmanager.service"
fi fi
# Create a folder in /var/log to let Ark tools write its own log files # Create a folder in /var/log to let Ark tools write its own log files

86
tools/systemd/arkdaemon.init Executable file
View File

@ -0,0 +1,86 @@
#!/bin/bash
#
# /usr/libexec/arkmanager/arkmanager.init
#
# ARK manager daemon
#
# chkconfig: 2345 80 20
# description: ARK manager daemon used to start the server and keep it updated
# processname: ShooterGameServer
# config: /etc/arkmanager/arkmanager.cfg
### BEGIN INIT INFO
# Provides: ARK manager deamon
# Required-Start: networking
# Required-Stop: networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ARK manager deamon
# Description: ARK manager daemon used to start the server and keep it updated
#
### END INIT INFO
# Global variables
source /etc/arkmanager/arkmanager.cfg
NAME="ShooterGameServer"
LOGFILE="${logdir}/${NAME}.log"
DAEMON="/usr/bin/arkmanager"
GREEN="\\033[1;32m"
RED="\\033[1;31m"
NORMAL="\\033[0;39m"
set -e
# If the daemon is not there, then exit.
test -x $DAEMON || exit 5
case "$1" in
start)
echo -n "Starting $NAME: "
su -s /bin/sh -c "$DAEMON start" $steamcmd_user > /dev/null
sleep 5
PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ]; then
echo "$PID" >/var/run/arkmanager.pid
echo "[" "$GREEN" " OK " "$NORMAL" "]"
exit 0
else
echo "[" "$RED" " FAILED " "$NORMAL" "]"
exit 1
fi
;;
stop)
echo -n "Stopping $NAME: "
su -s /bin/sh -c "$DAEMON stop" $steamcmd_user > /dev/null
sleep 5
PID=`ps -ef | grep $NAME | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ]; then
echo "[" "$RED" " FAILED " "$NORMAL" "]"
exit 1
else
echo "[" "$GREEN" " OK " "$NORMAL" "]"
rm /var/run/arkmanager.pid
exit 0
fi
;;
restart)
echo -n "Restarting $NAME: "
su -s /bin/sh -c "$DAEMON restart" $steamcmd_user > /dev/null
echo "OK"
;;
status)
su -s /bin/sh -c "$DAEMON status" $steamcmd_user
exit 0
;;
*)
# For invalid arguments, print the usage message.
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac