如何检查进程是否处于挂起状态(Linux)[已关闭]

关闭。此问题不符合堆栈溢出准则。它目前不接受答案。

<hr class=“my12大纲无baw0 bb bc-POWER-400”/

想改进此问题吗?更新问题,使其成为堆栈溢出的主题。

已于5年前关闭

改进这个问题

Linux中是否有任何命令可以让我知道进程是否处于挂起状态

Linux中是否有任何命令可以让我知道进程是否处于挂起状态

没有命令,但有一次我不得不做一个非常愚蠢的黑客来完成类似的事情

  • 运行ps查找监视进程的PID列表(以及执行时间等)
  • 在PIDs上循环
  • 启动gdb使用其PID附加到进程,使用线程apply all where从中转储堆栈跟踪,从进程分离
  • 在以下情况下,进程被宣布挂起:
    • 经过3次检查,其堆栈跟踪没有改变,时间也没有改变
    • 它的堆栈跟踪没有改变,经过3次检查,时间显示CPU负载为100%
  • 挂起的进程被终止,以便监视应用程序有机会重新启动挂起的实例

但是,这是一个非常粗糙的黑客行为,为了达到一个即将错过的最后期限,它被删除了几天后,一个错误的应用程序修复程序最终安装

否则,正如所有其他响应者绝对正确地评论的那样,无法确定进程是否挂起:这仅仅是因为挂起可能由于多种原因而发生,通常与应用程序逻辑有关

唯一的方法是应用程序本身能够指示它是否处于活动状态。最简单的方法可能是,例如,周期性日志消息“我处于活动状态”

发表评论