如何才能在不终止子进程的情况下终止父 shell 脚本进程?

如何才能在不终止子进程的情况下终止父 shell 脚本进程?

我编写了运行 PHP 进程的 shell 脚本。但它没有在后台运行。我可以终止 shell 脚本而不终止正在运行的 PHP 进程吗?

答案1

是的,但你必须先将其分离。要将子进程与父进程分离,请运行:

kill -20 PID

kill -18 PID

也可以看看:https://stackoverflow.com/questions/625409/how-do-i-put-an-already-running-process-under-nohup

如果您与该进程位于同一终端,请键入ctrl-z以停止父进程,然后使用ps -ef查找 php 子进程的 PID。使用上面的 kill 行有效地将子进程与父进程分离。然后fg返回到您的 shell 脚本,它应该会正常终止,或者您可以kill -9在提示符下直接按 PID 或名称访问 shell 脚本。否则,终止父进程将(最终)删除子进程。

相关内容