开发者社区> 问答> 正文
1
0
分享

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

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

展开
收起
a123456678 2016-06-15 16:20:11 2926 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 举报
    赞同 评论 打赏

    评论

    全部评论 (0)

    登录后可评论
问答排行榜
最热
最新

相关电子书

更多
《3-Alibaba Dragonwell 在Alibaba Cloud Linux 3上的应用及优化》 立即下载
Alibaba Cloud Linux 3 技术揭秘 立即下载
Alibaba Cloud Linux 3 发布 立即下载
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等