Selbst daemonizing bash-Skript
Möchte ich ein script, selbst daemonizing, d.h., keine machen zu müssen nohup $SCRIPT &>/dev/null &
manuell auf der shell-prompt.
Mein plan ist, erstellen Sie einen Abschnitt von code wie dem folgenden:
#!/bin/bash
SCRIPTNAME="$0"
...
# Preps are done above
if [[ "$1" != "--daemonize" ]]; then
nohup "$SCRIPTNAME" --daemonize "${PARAMS[@]}" &>/dev/null &
exit $?
fi
# Rest of the code are the actual procedures of the daemon
Ist dies ratsam? Haben Sie bessere alternativen?
- Sollten Sie doppelte Anführungszeichen verwenden, um
$SCRIPTNAME
und$1
zumindest; sonst laufen Sie in Schwierigkeiten, wenn dort Leerzeichen enthalten sind in diesen Werten. - du hast Recht. Ich habe die doppelten Anführungszeichen. Danke für den Hinweis!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind Dinge, die ich sehe.
Shouln ' T, dass sein
== --daemonize?
Anstelle von Aufruf von Ihrem Skript erneut aus, konnte man nur beschwören eine subshell, die sich im hintergrund:
Oder
function
- Funktion, so dass ich es nicht bemerkt, viel Dank.[[ "$1" != --daemonize ]]
korrekt ist. Grundsätzlich, wenn das Skript wird nicht aufgerufen, mit der--daemonize
parameter, es wird relaunch selbst die übergabe der--daemonize
parameter. Jedoch, ich kann sehen, dass deine Lösung ist viel eleganter, so ist der test umstritten. Danke!!!