Wie kann ich den übergeordneten Shell-Skriptprozess beenden, ohne den untergeordneten Prozess zu beenden?

Wie kann ich den übergeordneten Shell-Skriptprozess beenden, ohne den untergeordneten Prozess zu beenden?

Ich schreibe ein Shell-Skript, das den PHP-Prozess ausführt. Aber es läuft nicht im Hintergrund. Kann ich das Shell-Skript beenden, ohne den laufenden PHP-Prozess zu beenden?

Antwort1

Ja, aber Sie müssen es zuerst trennen. Um den untergeordneten Prozess vom übergeordneten Prozess zu trennen, führen Sie Folgendes aus:

kill -20 PID

kill -18 PID

Siehe auch:https://stackoverflow.com/questions/625409/wie-stelle-ich-einen-bereits-laufenden-prozess-unter-nohup

Wenn Sie sich auf demselben Terminal wie der Prozess befinden, geben Sie ein, ctrl-zum den übergeordneten Prozess zu stoppen, und verwenden Sie, ps -efum die PID des PHP-Kindprozesses zu ermitteln. Verwenden Sie die Kill-Zeilen oben, um den untergeordneten Prozess effektiv vom übergeordneten Prozess zu trennen. Kehren Sie dann fgzu Ihrem Shell-Skript zurück, und es sollte normal beendet werden, oder Sie können kill -9das Shell-Skript direkt nach PID oder Name aufrufen, während Sie sich an der Eingabeaufforderung befinden. Andernfalls wird durch das Beenden des übergeordneten Prozesses (eventuell) auch der untergeordnete Prozess entfernt.

verwandte Informationen