开发者社区> 问答> 正文

在linux 平台上如果一个进程已经退出,如何根据进程id 查询该进程的退出码呢?

在linux 平台上如果一个进程已经退出,如何根据进程id 查询该进程的退出码呢?

展开
收起
a123456678 2016-06-15 16:20:11 2805 0
1 条回答
写回答
取消 提交回答
  • 退出码非永久保留,如果进程已经退出,你又没有使用某种方式承接退出码的话(如环境变量,输出到文件等存储方式),那么程序一旦退出,相关的信息会被释放掉,你无法获取退出码。

    因此你如果想获取退出码,那么就需要开一个进程监视运行中的进程。

    如bash脚本中

    #!/bin/bash
     
    (ping www.baidu.com; echo $?) &
    sleep 10
    pkill ping
    在shell中,$?这个特殊的变量存储上一条命令的退出码。小括号的作用是括号内整体的命令在单独的子进程中执行,&将这个bash子进程放后台。

    所以等于开了一个bash子进程随时监视ping进程,当ping进程被kill掉的时候,后面的$?变量就是ping命令的退出码。

    2019-07-17 19:39:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载