当前位置: 首页 > 面试题库 >

是什么杀死了我的程序,为什么?

公孙芷阳
2023-03-14
问题内容

我的应用程序在Linux上作为后台进程运行。当前在“终端”窗口的命令行中启动。

最近,一个用户执行该应用程序一段时间后,它神秘地死了。文本:

被杀

在航站楼上。这发生了两次。我问其他终端是否有人使用kill命令杀死进程?没有。

Linux在什么情况下会决定终止我的进程?我相信外壳程序显示为“
killed”,因为该进程在收到kill(9)信号后就死了。如果Linux发送了kill信号,那么系统日志中是否应该有一条消息说明为什么它被杀死了?


问题答案:

如果用户或系统管理员没有杀死内核可能拥有的程序。内核只会在极端的资源匮乏(例如内存+交换耗尽)之类的特殊情况下终止进程。



 类似资料:
  • 如何确定我的 Gradle 守护进程死亡的原因?我收到的唯一消息是L 这发生在活动版本中。几个步骤将完成,一个步骤将显示为活动状态,然后生成失败。 这是在将我们的内存参数(< code > Xmx < code > Xms < code > perm gen )从一个调用< code>gradlew的shell脚本移动到< code>gradle.properties并直接调用< code>gra

  • 问题内容: 为什么在调用execute方法时将未处理的异常重新抛出在worker中?结果,将在下一次执行时创建新线程,以最大化线程数 问题答案: 为什么当RuntimeException发生时,java ThreadPoolExecutor杀死线程? 我只能猜测, 直接进行线程调用而不将其包装在a中的原因是,这样,即使您不在乎结果,也不会招致该线程的开销。 __ 如果您的线程抛出,这是很罕见的事情

  • 问题内容: 如果未使用,则终止JVM对其子进程没有影响。这是一个例子。 Bash脚本: Java代码: 后发出后,JVM立即终止。并显示: 然后30秒后,我检查当前目录中文件的内容。内容是: 上面的命令现在什么也没显示。现在我取消注释并重新编译。运行之后,我使用上面的命令来验证子进程正在运行。然后我发出JVM终止。现在,运行上面的命令不会显示任何内容。文件内容保持为: 我已经检查了不能解释此行为的

  • 我目前有一个问题,一个'而'循环不执行。如果输入文本文件有下一行,我将循环条件设置为true。然而,当我执行我的程序时,循环没有运行。我通过添加一个“System.out.println(text)”来确认这一点,正如我所怀疑的,没有产生任何文本。 什么问题导致循环无法执行?

  • 问题内容: 是否可以在不设置/检查任何标志/信号灯/等的情况下终止正在运行的线程? 问题答案: 在Python和任何语言中,突然终止线程通常都是一种糟糕的模式。请考虑以下情况: 线程持有必须正确关闭的关键资源 该线程创建了其他几个必须同时终止的线程。 如果你负担得起的话(如果你要管理自己的线程),处理此问题的一种好方法是有一个标志,每个线程定期检查一次,以查看是否该退出。 例如: 在此代码中,你应

  • 我的代码出现错误: 我的示例的完整代码如下: