【问题标题】:Linux: get the exit code from the kill commandLinux:从 kill 命令中获取退出代码
【发布时间】:2012-01-05 14:10:14
【问题描述】:

如果我使用kill 命令向进程发送SIGTERM 信号,我期望退出代码,但在终止进程后运行以下命令时,我总是得到0(零):

echo $?

根据这篇文章中的答案,我应该在向进程发送SIGTERM 时得到 143:Always app Java end with "Exit 143" Ubuntu

但我没有得到那个退出代码。为什么?

【问题讨论】:

    标签: linux kill exit-code sigterm


    【解决方案1】:

    您获得的退出代码是针对kill 命令本身的。 0 表示成功,即其他进程收到了你发送的信号。 kill 只是不报告进程的退出状态,因为它甚至无法确定其他进程是否由于它发送的信号而退出。

    【讨论】:

    • 啊,好的!有什么方法可以检查被杀死的进程的退出代码吗?
    • @Rox:我相信只有父进程可以直接访问退出状态,所以不能直接访问。
    • 可以查看被杀进程的退出码。在发送信号之前使用 ptrace 附加到它。 (这可能比它的价值更麻烦!)或者,让被终止进程的父进程报告其退出状态。
    • kill 命令本身的退出代码有参考吗?
    • @Sathors 谢谢。大多数手册页都没有提到它,但似乎至少有些人提到了它 (man7.org/linux/man-pages/man1/kill.1.html)。天知道后者是否适用于他们的男人中没有提到的所有系统。有一天我会明白为什么同一个命令有 19 个不同的手册页(我猜它们与不同的发行版有关,但仍然)......
    猜你喜欢
    • 2021-12-04
    • 2018-11-04
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    相关资源
    最近更新 更多