Zusätzlich nohup
können Sie den Prozess mit "&" und Subshell im Hintergrund starten:
Suffixieren Sie den Befehl mit & und setzen Sie ihn in Klammern
$ (thecommand args &)
Nehmen wir an, Ihr Prozess erhält die PID 1922:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
usr 11473 2643 0 15:07 pts/1 00:00:00 bash
usr 11922 1 0 15:11 pts/1 00:00:00 thecommand
Schauen Sie, dass es nicht mit dem Shell-Prozess 11473 verbunden ist, der das ursprüngliche übergeordnete Element war. Wenn Sie also die aktuelle Shell beenden oder beenden (11473), läuft der Prozess 11922 weiter und wird von den PTS getrennt.
Versuchen Sie, die Shell zu verlassen und eine neue Shell einzugeben. Auch wenn diese Shell mit denselben Punkten verbunden ist, können Sie den Vorgang jetzt ohne Punkte sehen:
$ ps -fp 11922
UID PID PPID C STIME TTY TIME CMD
usr 11922 1 0 15:11 ? 00:00:00 thecommand
Ich weiß nicht, wie es in Posix heißt oder dokumentiert ist, aber ich benutze es seit 1990 in bsh, ksh und jetzt in bash.
Zuletzt können Sie den bg
eingebauten Shell-Befehl verwenden:
Starten Sie einfach Ihr Programm und geben Sie STRG + Z ein, wenn Sie es anhalten oder im Hintergrund behalten möchten:
$ thecommand
^Z
[1] Stopped thecommand
Lass es nun weiter im Hintergrund laufen:
$ bg
[1]+ thecommand &
Wenn Sie sich die Prozessinfos ansehen, gibt es noch einen übergeordneten Prozess:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
usr 12046 2643 0 15:18 pts/6 00:00:00 bash
usr 12571 12046 0 16:00 pts/6 00:00:00 thecommand
usr 12601 12046 0 16:04 pts/6 00:00:00 ps -f
Verlassen Sie also den aktuellen Prozess. Der im Hintergrund ausgeführte Prozess ist nicht mit dem ursprünglichen übergeordneten Prozess verbunden und wird im Hintergrund ausgeführt:
$ exit
Melden Sie sich erneut an und sehen Sie sich die Prozessinformationen an:
$ ps -f 12571
UID PID PPID C STIME TTY TIME CMD
usr 12571 1 0 16:00 ? 00:00:00 thecommand
disown
Befehl ausgeführt. Es gab zurück: Bash: Warnung: Löschen von gestopptem Job 1 mit Prozessgruppe 24876. Jetzt ist mein Job in aufgeführtps -all
, scheint aber nicht zu funktionieren (CPU-Auslastung ist 0%)