进程完成后获取退出代码/信号

进程完成后获取退出代码/信号

我通过 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 $$

也可以看看具有特殊含义的退出代码

相关内容