Bzflag init.d Script

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Bzflag init.d Script

Beitrag von pcace » 28.08.2011 01:14:25

Hi,

ich habe vor einen kleinen Bzflag server auf meinem debian server laufen zu lassen.

Prinzipiell ist das kein Problem, nur leider wird mit dem Paket "bzflag-server" kein Init.d script mitgeliefert.

Aus einer Debian Mailingliste habe ich das gefischt:

Code: Alles auswählen

#!/bin/sh
### BEGIN INIT INFO
# Provides:          bzflag
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Init script for bzflag-server
### END INIT INFO

ACTION="${1}"

NAME="bzflag"
DESC="BZFlag game server"
PIDFILE="/var/run/bzflag/game.pid"
LOGFILE="/var/log/bzflag/game.log"
BINARY="/usr/games/bzfs"

test -x ${BINARY} || exit 0
test -f /etc/default/${NAME} || exit 0

. /lib/lsb/init-functions
. /etc/default/${NAME}

case "${ACTION}" in
        start|start-now)
                if [ "${ACTION}" != "start-now" ]
                then
                        case "$(echo "${RUN_AT_STARTUP}" | tr A-Z a-z)" in
                                true|1|enabled|on|yes|ok)
                                        ;;
                                *)
                                        exit 0
                                        ;;
                        esac
                fi

                log_daemon_msg "Starting ${DESC}" ${NAME}
                if ! start-stop-daemon --start -q -b --oknodo --pidfile ${PIDFILE} \
                        -c games:games --exec ${BINARY} -- \
                        -pidfile ${PIDFILE} ${OPTIONS} 2>&1 >> ${LOGFILE}
                then
                        log_end_msg 1
                else
                        log_end_msg 0
                fi
                ;;
        stop|stop-now)
                log_daemon_msg "Stopping ${DESC}" ${NAME}
                if start-stop-daemon --stop -q --pidfile ${PIDFILE} \
                        --retry 10 --exec ${BINARY} 2>&1 >> ${LOGFILE}
                then
               then
                        rm -f ${PIDFILE}
                        log_end_msg 0
                else
                        log_end_msg 1
                fi
                ;;
        restart|force-reload)
                ${0} stop
                sleep 1
                ${0} start
                ;;
        *)
                echo "Usage: /etc/init.d/${NAME} {start[-now]|stop[-now]|restart|force-reload}"
                exit 1
                ;;
esac

exit 0

Das ganze funktioniert auch. Nur leider nicht mit meinen servereinstellungen.
ich habe ein conf file, welches in /etc/ liegt. eigentlich wird der Server per "bzfs -conf /etc/bzfs.conf" aufgerufen.

Wie muss ich nun das script verändern, damit die Einstellugen mitgeladen werden?!



Liebe Grüße,

Pcace

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Bzflag init.d Script

Beitrag von cirrussc » 28.08.2011 18:43:59

Ich kenne das Paket nicht, aber ich würde nach dem Init Skript davon ausgehen, dass in einer Datei /etc/default/bzflag eine im Skript verwendete Variable "OPTIONS" mit eben solchen gesetzt werden kann.

Wenn diese noch nicht vorhanden ist (ansonsten die conf Option anhängen), solltest Du sie anlegen:

Code: Alles auswählen

echo 'OPTIONS="-conf /etc/bzfs.conf"' >/etc/default/bzflag
Im Skript wird nämlich auf solch eine Datei getestet und sie inkludiert:

Code: Alles auswählen

NAME="bzflag"
[...]
test -f /etc/default/${NAME} || exit 0

. /etc/default/${NAME}
Im Skript wird dann die gewonnene Variable OPTIONS beim Start an die im Pfad BINARY gegebene Executable übergeben.

Code: Alles auswählen

log_daemon_msg "Starting ${DESC}" ${NAME}
                if ! start-stop-daemon --start -q -b --oknodo --pidfile ${PIDFILE} \
                        -c games:games --exec ${BINARY} -- \
                        -pidfile ${PIDFILE} ${OPTIONS} 2>&1 >> ${LOGFILE}
Versuch es mal, vielleicht lieg ich auch falsch.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 28.12.2011 21:57:07

So, nun nach einer Ewigkeit habe ich mal wieder vor mich um den Bzflag server zu kümmern. Es klappt immernoch nicht ;)

nun nochmal der aktuelle Stand:

das ist das init.d script:

Code: Alles auswählen

#!/bin/sh
### BEGIN INIT INFO
# Provides:          bzflag
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Init script for bzflag-server
### END INIT INFO

ACTION="${1}"

NAME="bzflag"
DESC="BZFlag game server"
PIDFILE="/var/run/bzflag/game.pid"
LOGFILE="/var/log/bzflag/game.log"
BINARY="/usr/games/bzfs"

test -x ${BINARY} || exit 0
test -f /etc/default/${NAME} || exit 0

. /lib/lsb/init-functions
. /etc/default/${NAME}

case "${ACTION}" in
        start|start-now)
                if [ "${ACTION}" != "start-now" ]
                then
                        case "$(echo "${RUN_AT_STARTUP}" | tr A-Z a-z)" in
                                true|1|enabled|on|yes|ok)
                                        ;;
                                *)
                                        exit 0
                                        ;;
                        esac
                fi

                log_daemon_msg "Starting ${DESC}" ${NAME}
                       if ! start-stop-daemon --start -q -b --oknodo --pidfile ${PIDFILE} \
                        -c games:games --exec ${BINARY} -- \
                        -pidfile ${PIDFILE} ${OPTIONS} 2>&1 >> ${LOGFILE}
                then
                        log_end_msg 1
                else
                        log_end_msg 0
                fi
                ;;
        stop|stop-now)
                log_daemon_msg "Stopping ${DESC}" ${NAME}
                if start-stop-daemon --stop -q --pidfile ${PIDFILE} \
                        --retry 10 --exec ${BINARY} 2>&1 >> ${LOGFILE}
                then
                        rm -f ${PIDFILE}
                        log_end_msg 0
                else
                        log_end_msg 1
                fi
                ;;
        restart|force-reload)
                ${0} stop
                sleep 1
                ${0} start
                ;;
        *)
                echo "Usage: /etc/init.d/${NAME} {start[-now]|stop[-now]|restart|force-reload}"
                exit 1
                ;;
esac

exit 0
Wenn ich es versuche mit /etc/init.d/bzfs start zu starten, passiert einfach garnichts. Also wirklich nichts. Es steht nix im Log, und der Server läuft auch nicht... (jedenfalls kann ich nicht connecten^^)

in etc/default/ ist nun eine "bzflag" mit diesem inhalt: -conf /etc/bzfs.conf

Irgendwie ist das alles sonderbar! Bzfs funktioniert wunderbar, wenn ich es per Hand aufrufe - also per /usr/games/bzfs -conf /etc/bzfs.conf

Hat irgendjemand dafür noch eine Idee?

Grüße,

Pcace

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bzflag init.d Script

Beitrag von Cae » 28.12.2011 22:29:04

pcace hat geschrieben:Hat irgendjemand dafür noch eine Idee?
Du solltest wirklich genau die Zeile verwenden, die cirrussc vor vier Monaten gepostet hatte und für solche langen Code-Abschnitte tendenziell eher NoPaste [1] verwenden.

Gruß Cae

[1] pastebin.php
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 28.12.2011 22:35:41

Hi,

aber genau das habe ich probiert!
per copy&paste.


Gruß

Pcace

PS: Danke für den "nopaste" link... ...wird in zukunft anders sein ;)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bzflag init.d Script

Beitrag von Cae » 28.12.2011 22:50:30

pcace hat geschrieben:aber genau das habe ich probiert!
per copy&paste.
Trotzdem sollte dann aus
cirrussc hat geschrieben:

Code: Alles auswählen

echo 'OPTIONS="-conf /etc/bzfs.conf"' >/etc/default/bzflag
nicht
pcace hat geschrieben:

Code: Alles auswählen

-conf /etc/bzfs.conf
sondern
/etc/default/bzflag hat geschrieben:

Code: Alles auswählen

OPTIONS="-conf /etc/bzfs.conf"
werden!

Wie cirrussc schon schrieb, es wird der Inhalt der Variable $OPTIONS an den Serverdienst übergeben. Diese wird nicht aus der Datei /etc/default/bzflag eingelesen, sondern dort gesetzt. Verstanden?

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 26.05.2012 10:45:28

Hallo liebe leute,

es funktioniert immernoch nicht!

die etc/init.s/bzfs
NoPaste-Eintrag36471

Code: Alles auswählen

cat /etc/default/bzflag 
OPTIONS="-conf /etc/bzfs.conf"
und die conf existiert auch!


Noch weitere Ideen?


Gruß

Pcace

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bzflag init.d Script

Beitrag von Cae » 26.05.2012 10:59:25

Okay. Poste mal bitte genau die Befehle, die du eingibst, und ihre Ausgabe. Also einfach alles, was im Terminal steht! Daraus sollte ja hervorgehen, "was nicht geht". /var/log/bzflag/game.log ist bestimmt auch aufschlussreich.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 26.05.2012 11:45:45

Naja,

es pasiert einfach garnichts-->

Code: Alles auswählen

root@t64:/home/hannes# /etc/init.d/bzfs start
root@t64:/home/hannes# cat /var/log/bzflag/game.log 
root@t64:/home/hannes# ls -la /etc/init.d/bzfs 
-rwxr-xr-x 1 root root 1454 Dez 28 21:53 /etc/init.d/bzfs

Was mach ich denn nur falsch?

dillo
Beiträge: 361
Registriert: 28.05.2005 19:53:56

Re: Bzflag init.d Script

Beitrag von dillo » 26.05.2012 12:55:08

dir fehlt auf jeden Fall noch RUN_AT_STARTUP, sonst ist nämlich hier

Code: Alles auswählen

                        case "$(echo "${RUN_AT_STARTUP}" | tr A-Z a-z)" in
                                true|1|enabled|on|yes|ok)
                                        ;;
                                *)
                                        exit 0
                                        ;;
                        esac
Ende Gelände.

Also z.B.

Code: Alles auswählen

echo 'RUN_AT_STARTUP="1"' >>/etc/default/bzflag
Wennn es dann immer noch nicht geht, füge oben im Skript ein

Code: Alles auswählen

set -x
ein, dann sollte man sehen, wo es sonst noch klemmt.

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 26.05.2012 13:13:57

Hmm,

leider kann ich mit der Ausgabe die ich bekomme, wenn ich set x dem Script hinzufüge nichts anfagen:
NoPaste-Eintrag36472

Jemand anderes?


Gruß

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bzflag init.d Script

Beitrag von Cae » 26.05.2012 14:04:25

Code: Alles auswählen

 41 + start-stop-daemon --start -q -b --oknodo --pidfile /var/run/bzflag/game.pid -c games:games --exec /usr/games/bzfs -- -pidfile /var/run/bzflag/game.pid -conf /etc/bzfs.conf
Da wird zwei Mal die PID-file mit angegeben, evtl. wird sie schon vom start-stop-daemon angelegt, bzfs sieht sie und bricht ab? Aber selbst dann müsste *irgendwas* im game.log stehen.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 26.05.2012 14:10:57

Wenn ich in einem terminal tail -f /var/log/bzflag/game.log aufrufe und im anderen /etc/init.d/bzfs start, bekomme ich wirklich NICHTS von tail zurück gegeben. garnichts.

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 31.05.2012 13:52:14

Kann mir da keiner helfen?!

Ich weis zwar die lösung nicht, aber es kann ja nicht so schwer sein oder?!


Gruß


Pfannkuchen

pcace
Beiträge: 239
Registriert: 28.08.2011 01:08:55

Re: Bzflag init.d Script

Beitrag von pcace » 31.05.2012 14:06:03

Ich muss mich eigentlich jetzt gaaaaaanz still in die Ecke stellen.....

die vielen Hilfestellungen von euch haben natürlich geholfen.

In der BZFlag Config war ein fehler. Desswegen hat die ganze geschichte nicht funktioniert.


Oh mann, ein bissel peinlich ists mir schon.

Danke für die Hilfe!


Gruß

Pfannkuchen


PS.: falls es jemand sucht: hier das funktionierende init.d script: NoPaste-Eintrag36485
und noch die funktionierende cfg: NoPaste-Eintrag36486
und falls jemand auf dem Server daddeln will: http://xrl.us/bm9xce Viel Spass!

Antworten