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

2024-02-18

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


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

没有命令,但有一次我不得不做一个非常愚蠢的黑客来完成类似的事情。我编写了一个 Perl 脚本,它定期(在我的例子中每 30 秒):

  • run ps查找所监视进程的 PID 列表(以及执行时间等)
  • 循环 PID
  • start gdb使用 PID 附加到进程,使用以下命令转储堆栈跟踪thread apply all where,脱离进程
  • a process was declared hung if:
    • 经过 3 次检查后,它的堆栈跟踪没有改变,时间也没有改变
    • 其堆栈跟踪没有改变,并且在 3 次检查后时间显示 CPU 负载为 100%
  • 挂起的进程被终止,以便监控应用程序有机会重新启动挂起的实例。

但这是非常非常非常粗暴的黑客行为,这样做是为了赶上即将错过的最后期限,几天后,在最终安装了对有缺陷的应用程序的修复后,它被删除了。

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

唯一的方法是应用程序本身能够指示它是否还活着。最简单的方法可能是例如定期日志消息“我还活着”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 使用mockito库模拟java中的final类[重复]

    这个问题在这里已经有答案了 我有一个最终类 它有一个我想执行特定操作的方法 因此我想创建最终类的对象 但我无法创建它 以下是我的课程 public final class A private String name A String nam
  • 在 Emacs 中搜索标记(选定)文本

    我使用 emacs 查看和编辑代码和其他文本文件 我想知道是否有一种方法可以向前或向后搜索当前缓冲区中标记的文本 类似于我在记事本或写字板中可以执行的操作 就像我可以在缓冲区中标记一些文本并执行 C s 或 C r 并能够使用标记的文本进行
  • 无法在画布上绘制垂直虚线

    我正在使用以下 javascript 算法在画布上绘制虚线 该算法正确绘制水平线 但无法绘制垂直线 g dashedLine function x y x2 y2 dashArray this beginPath this lineWidt
  • javascript 上的 localStorage 带来刷新

    我试图在空闲时关闭用户 在选项卡之间使用 javascript 下面的代码对于单个选项卡工作正常 对于多个选项卡它无法正常工作 例如 我设置了 10 秒作为空闲时间 并离开了第一个选项卡 它会在 10 秒内将用户抛出 假设我在以下位置打开了
  • 使用 babel 6 时,` __webpack_require__(...) 不是一个函数`

    一切似乎都建立得很好 http d pr i 1aZxR http d pr i 1aZxR使用以下配置 但是 当我运行代码时 出现以下错误 通过 webpack dev server Uncaught TypeError webpack
  • 如何在 R 中对行和列进行子集化

    我是R新手 在阅读 R in action 这本书时 遇到了一个问题 代码有什么区别newdata lt leadership order leadership age and newdata lt leadership order lea
  • 协变和逆变之间的区别

    我无法理解协变和逆变之间的区别 问题是 协变和逆变有什么区别 协变和逆变是将集合中的一个成员与另一个成员关联起来的映射函数 更具体地说 映射可以是协变的或逆变的relation在那一套上 考虑所有 C 类型集的以下两个子集 第一的 Anim
  • 存储目录结构的数据结构?

    我正在使用 struts 2 框架开发一个简单的 java web 应用程序 该应用程序的目的是使用JSP页面显示我的计算机下的特定目录结构 我的问题是使用哪种数据结构为了存储目录结构 以便 JSP 页面可以从操作类访问该目录结构对象 ps
  • 我应该从 Python 3.0 开始吗​​? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我决定扩大我的编程视野并学习Python编程语言 虽然我在大学课程和工作中的一两个项目中使用过一点 Python 但我绝不是专家 我的问题如
  • 使用 Perl 正则表达式捕获 C 样式代码块之前和之后的文本

    我正在尝试使用 Perl 正则表达式捕获 C 样式代码块之前和之后的一些文本 到目前为止 这就是我所拥有的 use strict use warnings my text lt lt END int max int x int y if x
  • 可绘制选择器在 Jelly Bean 中不起作用

    我有一个可绘制的选择器作为每个项目的背景ListView以突出显示所选行 一切在冰淇淋三明治中都可以正常工作 但在果冻豆中似乎不起作用 找不到任何文档说明哪些更改可能导致它停止工作以及我需要做什么来修复它 不工作是指当我单击行中的一行时Li
  • 什么是聚合初始化?

    数组初始化 第 4 章第 231 页中的部分 Java 思维 第二版 有这样说 在 C 中初始化数组很容易出错且乏味 C 使用 聚合初始化以使其更安全 Java没有 像 C 一样的 聚合 因为 Java 中一切都是对象 确实如此 有数组 并
  • 斑马打印机可以直接打印pdf吗

    是否可以通过Java中的斑马打印机直接打印存储的pdf 我找不到任何提及它们与直接打印兼容的内容 而且我无法打印它 我需要直接通过 zpl 进行通信吗 通过 Acrobat Reader 打印时 zebra 打印机工作正常 Adobe Re
  • 是什么导致在 iOS 应用程序 UI 测试期间获取元素快照时出现错误 -25204

    我在 UI 测试期间收到以下错误 使用 iPhone 6 模拟器 Assertion Failure UI Testing Failure Failure getting snapshot Error Domain XCTestManage
  • Math.floor(Math.random() * (Max - Min + 1) + Min) 在 JavaScript 中如何工作? (理论)

    我正在学习 JavaScriptfreecodecamp org https www freecodecamp org 基本 JavaScript 在舞台上103 110有一个任务是创建一个带有 2 个参数 最小值和最大值 的函数 并且该函
  • 如何使用电子邮件登录用户并使用 Django Rest Framework JSON Web 令牌将其注销?

    我有一个现有的 正在运行的 Django 应用程序 它实现了许多 Django REST framework API 我刚刚添加了用户身份验证Django rest framework JWT https github com GetBli
  • Linux 内核导出的符号

    我想检查Linux内核导出的符号列表 所以我发出命令 cat proc kallsyms 0000000000000000 D per cpu irq stack union 0000000000000000 D per cpu start
  • 如何在android中的按钮顶部显示进度条

    好的 这是我可以在 iOS 中在五分钟内完成的事情 但我似乎无法在 Android 上得到它 我只是想在按钮顶部显示进度条 我成功地渲染了进度条beside像这样的按钮 使用此代码
  • 这 2 个@synthesize 模式和推荐的模式有什么区别?

    在示例代码的很多地方我都看到了 synthesize 变量的两种不同方式 例如 我在这里使用 1 个示例按钮 property 强 非原子 IBOutlet UIButton logonButton 1 synthesize logonBu
  • 如何检查进程是否处于挂起状态(Linux)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux中是否有任何命令可以让我知道进程是否处于挂起状态 Linux中是否有任何命令可以让我知道进程是否处于挂起状态 没有命令 但有一次