Eigenes init-Skript

huffman

New Member
Schönen guten Morgen!

Ich habe einen eigenen Daemon programmiert, den ich starten möchte. Testweise habe ich ein solches Skript erstellt. Wenn ich es aufrufe wird der Daemon zwar gestartet und ist auch erreichbar. Jedoch kann ich nun auf meiner Shell nichts mehr ausführen, da der Daemon mehr oder weniger gestartet wird. Wenn ich mit strg+c abbreche, steht der Daemon nicht mehr zur Verfügung.

Code:
### BEGIN INIT INFO
# Provides:             mydaemon
# Required-Start:    $syslog $remote_fs
# Required-Stop:     $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: Get grades
# Description:       This program is used to start and stop the Daemon
### END INIT INFO

PATH=/etc/mydaemon/
DESC="mydaemon"
NAME=mydaemon
USER=root
EXEC=mydaemon
DAEMON= ${PATH}${EXEC}

PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

case "$1" in
  start)
        echo "Starting $DESC: $NAME"
        start-stop-daemon --start --quiet --pidfile $PIDFILE \
                --chuid $USER \
                --startas $EXEC \
                --exec $DAEMON \
                -- \
                -pid=$PIDFILE
        echo "."
        ;;

Hat jemand eine Idee, warum der Daemon nicht startet, ohne auf meiner Shell ausgeführt zu werden?
 
Nööö hab ich nicht!

Aber Vllt ein Workaround?!?

Starte das Script doch einfach in einem Screen? :) Dann läuft das Script auch wenn du die Shell schließt! :)
 
Um Dein Programm von der Shell (TTY) zu lösen, mußt Du den Prozess forken und das Kind eine neue Session starten lassen, wie z.B. hier beschrieben.

Die Suchmaschine Deines Vertrauen("unix daemonize process") liefert Dir sich noch mehr Beispiele und Hintergrundwissen.
 
Ich meine, da der OP nicht verrät, um welchen Dienst es konkret geht, bleibt nur die generische Lösung.

Ich sehe aber gerade selbst, dass er den start-stop-daemon schon nutzt. Damit ist das dann auch hinfällig...
 
Wenn dein Dämon nicht automatisch ein Hintergrundprozess wird, musst du das beim Start des Dämons machen wie XioniX das schon sagte.
Ich meine allerdings, ein robust programmierter Dämon macht das selbst.
 
Last edited by a moderator:
@OP:

Das Script ist unvollständig, es ist ein Template, die Variablen sind nicht dementsprechend gesetzt und du lieferst keinerlei nützliche Informationen.

Damit man dir helfen kann, solltest du dein komplettes init-script posten und nicht irgendwelche Fetzen aus dem sysinit-v example. Es wäre das gleiche als wenn ich die 13. Seite aus der Bedienungsanleitung meines Toasters kopiere und dann frage wieso meine Waschmaschine nicht geht.
 
Back
Top