我通过 SSH 从远程客户端运行一些进程。
有时可以杀死进程,例如。kill
。如何获取退出代码/信号?该程序是一个PHP脚本
我通过运行脚本,sh -c
这样我就可以获得 pid 和 ppid
sh -c 'echo $PPID; echo $$; php script.php'
是否可以从父进程()监听/获取代码sh -c
?
我可以检查 pid 是否正在运行,但如果它已停止,我不知道它是否成功完成、出现错误或被杀死
我知道您可以用来$?
获取退出代码,但是如果进程被终止,这会起作用吗?
答案1
sh -c 'echo $PPID; echo $$; php script.php; echo $? > phpexit'; echo $? > shexit
的退出代码php
将包含在phpexit
文件中。
的退出代码sh
将包含在shexit
文件中。
如果sh
进程被杀死,phpexit
则不会生成文件。
您可以通过让脚本成功终止、执行pkill php
或终止 打印的 PID 来验证其中每一个的正确性echo $$
。
也可以看看具有特殊含义的退出代码。