在linux 平台上如果一个进程已经退出,如何根据进程id 查询该进程的退出码呢?
退出码非永久保留,如果进程已经退出,你又没有使用某种方式承接退出码的话(如环境变量,输出到文件等存储方式),那么程序一旦退出,相关的信息会被释放掉,你无法获取退出码。
因此你如果想获取退出码,那么就需要开一个进程监视运行中的进程。
如bash脚本中
#!/bin/bash
(ping www.baidu.com; echo $?) &
sleep 10
pkill ping
在shell中,$?这个特殊的变量存储上一条命令的退出码。小括号的作用是括号内整体的命令在单独的子进程中执行,&将这个bash子进程放后台。
所以等于开了一个bash子进程随时监视ping进程,当ping进程被kill掉的时候,后面的$?变量就是ping命令的退出码。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。