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

1

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

user3581646
quelle
und einige, wie duplizieren stackoverflow.com/questions/8533377/…
DeadMan
Was genau meinen Sie mit "es wurde nicht im Hintergrund ausgeführt" ?
Håkon Hægland

Antworten:

2

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

kill -20 PID

kill -18 PID

Siehe auch: https://stackoverflow.com/questions/625409/how-do-i-put-an-already-running-process-under-nohup

Wenn Sie sich am selben Terminal wie der Prozess befinden, geben Sie ein ctrl-z, um das übergeordnete Element zu stoppen und ps -efdie PID des untergeordneten PHP-Elements zu ermitteln. Verwenden Sie die Kill-Linien oben, um das Kind effektiv vom Elternteil zu trennen. Kehren Sie fgdann in Ihr Shell-Skript zurück, und es sollte normal enden, oder Sie können kill -9das Shell-Skript direkt nach PID oder Name ausführen, während Sie dazu aufgefordert werden. Andernfalls wird durch das Töten des Elternteils (möglicherweise) das Kind getötet.

Beracah
quelle