Sie brauchen wirklich nichts Besonderes, um einen Daemon herzustellen. Jedes Programm in jeder Sprache kann sich selbst "daemonisieren". Alternativ können Sie ein vorhandenes Programm mit einem kleinen Shell-Script-Wrapper dämonisieren (beispielsweise kann der Programmstarter /etc/init.d dies erledigen).
Normalerweise hat ein Dämon die folgenden Eigenschaften:
- Arbeitsverzeichnis muss sein /
- STDIN muss / dev / null sein
- STDOUT und STDERR müssen entweder / dev / null oder Protokolldateien sein
- Die übergeordnete ID sollte init (1) sein. Sie kann leicht erreicht werden, indem Sie den ursprünglichen Ausgang verlassen.
Update 1
Monit kümmert sich im Wesentlichen um die blutigen Details, die ich hier gegeben habe. Für die Details zu STDIN / STDOUT, / dev / null usw. sind dies grundlegende Unix-Konzepte. Ich denke, Sie müssen sich früher oder später damit befassen. Siehe zum Beispiel diese Unix-Einführung .
Update 2
Ein Shell-Skript, das ein Programm dämonisiert, würde wie folgt aussehen. Beachten Sie, dass dies nicht für Programme funktioniert, die im Vordergrund bleiben.
#!/bin/sh DAEMON=/some/program/to/run PARAMETERS="parameters to my program" LOGFILE=/var/log/somefile.log start() { echo -n "starting up $DAEMON" RUN=`cd / && $DAEMON $PARAMETERS > $LOGFILE 2>&1` if [ "$?" -eq 0 ]; then echo "Done." else echo "FAILED." fi } stop() { killall $DAEMON } status() { killall -0 $DAEMON if [ "$?" -eq 0 ]; then echo "Running." else echo "Not Running." fi } case "$1" in start) start ;; restart) stop sleep 2 start ;; stop) stop ;; status) status ;; *) echo "usage : $0 start|restart|stop|status" ;; esac exit 0