Mit einem Startscript. Welches ich von dem für deinen Bot abgeleitet habe.
#!/bin/sh
# For Teamspeak 3 System TSDNS Server
BINARYPATH="$(dirname "${0}")"
cd "${BINARYPATH}"
if [ -e "JTSDNS.jar" ]; then
BINARYNAME="JTSDNS.jar"
else
echo "Could not locate binary file, aborting"
exit 5
fi
case "$1" in
start)
if [ -e jtsdnsserver.pid ]; then
if ( kill -0 $(cat jtsdnsserver.pid) 2> /dev/null ); then
echo "The JTSDNS server is already running, try restart or stop"
exit 1
else
echo "jtsdnsserver.pid found, but no server running. Possibly your previously started server crashed"
echo "Please view the logfile for details."
rm jtsdnsserver.pid
fi
fi
if [ "${UID}" = "0" ]; then
echo "WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT"
c=1
while [ "$c" -le 10 ]; do
echo -n "!"
sleep 1
c=$((++c))
done
echo "!"
fi
echo "Starting the TeamSpeak 3 JTSDNS server"
if [ -e "$BINARYNAME" ]; then
if [ ! -x "$BINARYNAME" ]; then
echo "${BINARYNAME} is not executable, trying to set it"
chmod u+x "${BINARYNAME}"
fi
if [ -x "$BINARYNAME" ]; then
echo "TeamSpeak 3 JTSDNS server started"
"./${BINARYNAME}" &
echo $! > jtsdnsserver.pid
else
echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 JTSDNS server"
fi
else
echo "Could not find binary, aborting"
exit 5
fi
;;
stop)
if [ -e jtsdnsserver.pid ]; then
echo -n "Stopping the TeamSpeak 3 JTSDNS server"
if ( kill -TERM $(cat jtsdnsserver.pid) 2> /dev/null ); then
c=1
while [ "$c" -le 300 ]; do
if ( kill -0 $(cat jtsdnsserver.pid) 2> /dev/null ); then
echo -n "."
sleep 1
else
break
fi
c=$((++c))
done
fi
if ( kill -0 $(cat jtsdnsserver.pid) 2> /dev/null ); then
echo "JTSDNS Server is not shutting down cleanly - killing"
kill -KILL $(cat jtsdnsserver.pid)
else
echo "done"
fi
rm jtsdnsserver.pid
else
echo "No server running (jtsdnsserver.pid is missing)"
exit 7
fi
;;
restart)
$0 stop && $0 start || exit 1
;;
status)
if [ -e jtsdnsserver.pid ]; then
if ( kill -0 $(cat jtsdnsserver.pid) 2> /dev/null ); then
echo "JTSDNS Server is running"
else
echo "JTSDNS Server seems to have died"
fi
else
echo "No JTSDNS server running (jtsdnsserver.pid is missing)"
fi
;;
update)
if [ -e jtsdnsserver.pid ]; then
if ( kill -0 $(cat jtsdnsserver.pid) 2> /dev/null ); then
"./${BINARYNAME}" --update &
else
echo "JTSDNS Server seems to have died"
fi
else
echo "No JTSDNS server running (jtsdnsserver.pid is missing)"
fi
;;
*)
echo "Usage: ${0} {start|stop|restart|status|update}"
exit 2
esac
exit 0