![进程完成后获取退出代码/信号](https://linux22.com/image/184186/%E8%BF%9B%E7%A8%8B%E5%AE%8C%E6%88%90%E5%90%8E%E8%8E%B7%E5%8F%96%E9%80%80%E5%87%BA%E4%BB%A3%E7%A0%81%2F%E4%BF%A1%E5%8F%B7.png)
我通过 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 $$
。
也可以看看具有特殊含义的退出代码。