**!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!** Diese Seite wurde zuletzt am 9. Juli 2014 um 10:53 Uhr geändert. ===== Installation ===== Damit Tactical Ops:Crossfire überhaupt starten kann, benötigt es das Paket "**libstdc++5**". Da das Paket durch keine Abhängigkeit eines anderen Paketes im System "gehalten" wird, sollte man es auf "hold" setzen, damit es nach der nächsten Aktualisierung per aptitude nicht wieder verschwindet. Nutzt man zum Sauberhalten des Systems dann noch deborphan (welches seinerseits "apt-get" direkt verwendet), muss man dieses dann auch gleich zweimal tun: aptitude install libstdc++5 aptitude hold libstdc++5 echo libstdc++5 hold | dpkg --set-selections **ABER: es wird so in Zukunft auch nicht mehr durch aptitude aktualisiert! (=> Handarbeit)** aptitude update aptitude unhold libstdc++5 aptitude dist-upgrade aptitude hold libstdc++5 ===== init-Skript ===== #! /bin/sh # # tocserver initscript for the tactical ops:crossfire dedicated server # placed in /etc/init.d. # # Author: Patrick NEUMANN . # # Version: @(#)tocserver 1.0 18-Feb-2008 patrick@neumannsland.de # # # Deps: screen, psmisc # set -e PATH="/sbin:/bin:/usr/sbin:/usr/bin" DESC="Tactical Ops:Crossfire dedicated Server" NAME=startserver.sh DAEMON=/opt/toc_dedi_server/TOCrossfire/$NAME SCRIPTNAME=/etc/init.d/tocserver # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 # # Function that starts the daemon/service. # d_start() { screen -A -m -d -S tocserver su - tocserver -c "sh $NAME" } # # Function that stops the daemon/service. # d_stop() { local pid=`screen -list | grep tocserver | awk -F . '{print $1}' | sed -e s/.//` if [[|-z "${pid}" ]] ; then echo "Lost screen session" exit 1 else pid=`pstree -p ${pid} | sed -e 's/^.*sh(//' -e 's/ucc-bin.*$//' -e 's/).*$//'` if [[|-z "${pid}" ]] ; then echo "Lost tocserver session" exit 1 else kill -TERM ${pid} fi fi } # # Function that checks, if the daemon/service is running. # d_status() { local pid=`screen -list | grep tocserver | awk -F . '{print $1}' | sed -e s/.//` if [[|-z "${pid}" ]] ; then echo "$DESC ist not running (or: lost screen session)!" exit 1 else pid=`pstree -p ${pid} | sed -e 's/^.*sh(//' -e 's/ucc-bin.*$//' -e 's/).*$//'` if [[|-z "${pid}" ]] ; then echo "$DESC is not running (or: lost tocserver session)!" exit 1 else echo "$DESC ist running (PID: ${pid})! :-)" fi fi } case "$1" in start) echo -e "Starting $DESC \c" d_start echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo " done!" ;; stop) echo -e "Stopping $DESC \c" d_stop echo ". . . done!" ;; restart) echo -e "Stopping $DESC \c" d_stop echo ". . . and now . . ." sleep 1 echo -e "Starting $DESC \c" d_start echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo -e ". \c" sleep 1 echo " done!" ;; status) d_status ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 1 ;; esac exit 0 Damit man nach einem Server-Neustart (sei es auch nur der virtuelle), was äußerst selten vorkommen sollte, nicht vergisst, auch den Dienst neu zu starten, sollte man das init-Skipt am Besten gleich in die Standard-Runlevel mitaufnehmen: update-rc.d tocserver defaults