问题标签 [sigterm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2848 浏览

c++ - 在 OSx 中处理 sigterm

我在 XCode 6 中构建了控制台 C++ 应用程序,并希望向其添加 SIGTERM 处理程序。有很多例子,但我无法让它们起作用。

调试器在该语句处停止while,但未调用处理程序。这段代码有同样的问题

代码有问题吗?在 OSX 中处理信号的正确方法是什么?

0 投票
0 回答
272 浏览

r - R 可以解释 SIGINT/SIGTERM 并因此执行进程吗?

无论如何从R中的shell捕获一个SIGINT或SIGTERM,以便我可以尝试执行一些优雅的退出代码?

到目前为止,我还没有在我的搜索中找到任何东西。

0 投票
0 回答
410 浏览

java - 'kill -TERM 不调用 ShutdownHook'

我从这里有这个示例应用程序

这工作得很好,但如果我在我目前的应用程序中这样做,它不会执行

但是在

但是由于这些信号,我没有足够的时间在关闭应用程序之前进行操作。

我的应用程序中使用了几个线程和一个 JNI Wrapper,什么会导致在 kill -TERM 上未调用 shutdownHook 的问题?

我需要这个,因为我的应用程序使用网络协议,我可以在其中订阅变量。这个句柄必须在关闭之前取消订阅,否则服务器会因为一段时间后的句柄过多而耗尽内存(服务器不在我的控制范围内!)

0 投票
0 回答
238 浏览

ruby - 通过 runit 杀死工头子进程

我正在使用 runit 进行流程监督。我有以下简单的服务运行脚本:

这开始使用 RVM 包装器使用适当的 RVM 环境包装工头。一切都开始并运行良好,但是当我发出问题时,sv down myapp我可以在日志中看到工头报告接收 SIGTERM 并且工头进程终止,但子 Web 和工作进程继续运行。

如果我只是使用 kill 而不是通过 runit 手动向工头发送 SIGTERM,也会发生此问题,因此可能不是特定于 runit 的。但是,如果我以交互方式运行工头,然后执行 Cc 以发送正常工作的 SIGINT。但是,通过 kill 发送 SIGINT 和 SIGKILL 不起作用。

有没有办法让工头在非交互式运行时终止它的子进程,就像我在我的 runit 脚本中一样?

0 投票
1 回答
332 浏览

java - 是否可以在 Windows 中编写一个忽略所有形式的 SIGTERM 的批处理 [或其他可执行] 应用程序

我正在尝试创建一个控制台应用程序,它以按 CTRL + BREAK 或向进程发送 SIGTERM 信号不会终止它的方式挂起[即它一直挂起,而不关闭]。我想测试它是否继续使用以下 Java 代码:

到目前为止,我已经设法找到以下信息: 如何使命令提示符挂起?,虽然它不会停止 SIGTERM,只是 SIGINT。我还尝试在 java -jar 可执行文件中使用 Shutdown Hooks,这也让我可以控制 SIGINT,但不能控制 SIGTERM。我希望程序在给定 SIGTERM 时继续运行,以便我测试破坏功能。我还在 Go 中编写了一个程序,它做了类似的事情,除了它将 CTRL+ BREAK 注册为中断,出于某种原因[我不知道为什么,但它仍然不处理来自 java 代码的 SIGTERM 信号] :

注意:我仍然希望能够使用 SIGKILL 信号或窗口中的红色 X 关闭应用程序 :) 谢谢您的任何想法 :)

0 投票
1 回答
3086 浏览

linux - abrtd:节点进程被信号 6 (SIGABRT) 杀死

我正在运行一个执行长时间运行的数据迁移工作的 Node 程序。一个小时后,Node 进程被 Abrt 守护进程终止并创建核心转储。

调查我看到这个的原因:

node process was killed by signal 6 (SIGABRT)

任何想法为什么节点进程被杀死以及如何处理它?

0 投票
1 回答
964 浏览

bash - SIGTERM 信号处理混乱

我正在运行一个调用 shell 脚本的程序(用于讨论 pid 100 的 sh1)。该脚本依次调用另一个脚本(用于讨论 pid 101 的 sh2)并等待它完成。sh2(子脚本)大约需要 50 秒才能完成。

我调用 sh2 (/bin/sh2.sh) 的方式

在等待孩子完成期间,我尝试终止 sh1(使用 kill -15 100)。我在 sh1 中有一个处理函数来处理这个信号。但是,我观察到我的 sh1(父脚本)直到孩子完成它的工作(50 秒)才被终止,并且只有在此信号被处理之后。

我修改了我的子脚本,需要 30 秒才能完成,我观察到在向 sh1 发出 SIGTERM 后,大约需要 30 秒才能终止。

这是处理 SIGTERM 时的行为吗?那就是继续被子进程阻止?然后才处理信号。该过程不会因信号处理而中断吗?

父脚本中的信号处理。

0 投票
2 回答
576 浏览

node.js - 在 node.js 中使用 sudo shutdown -h 时无法捕获 SIGTERM

我在树莓派工作,节点版本是“node-v0.10.28-linux-arm-pi”。我已经运行了下面的代码。

当我调用linux命令“kill process id”来杀死进程时,会触发事件SIGTERM并退出。但是当它运行代码“exec(util.format('sudo shutdown -h......”)时,Raspberry pi 将直接关闭,我无法捕获事件 SIGTERM 并退出。我不知道为什么。可能可以你帮帮我好吗?谢谢。

0 投票
0 回答
317 浏览

java - 使用 SIGTERM 结束应用程序

我对 Java 比较陌生,我需要在我的应用程序内部构建一种方法来处理 SIGTERM 信号,以便我的应用程序可以正常关闭。这意味着它完成了当前正在处理的工作并且不接受新工作。正在进行的工作成功完成后,应用程序将关闭。

如果我是正确的,我需要使用addShutdownHook但我不清楚这将在哪里实现。

我是保留在主 Java 类中还是创建一个单独的 Java 类?如果是后者,我如何在 Java 主类中调用该方法?

有没有人有一个实现addShutdownHook的例子,以及他们在哪里放置和调用它?

很抱歉这个基本问题,但这对我来说是全新的。

0 投票
2 回答
5358 浏览

linux - 什么会导致 SIGTERM 不传播到子进程?

我在 Linux 上有一个通过 fork 启动 20 个子进程的进程。当我杀死父进程时,它通常会杀死所有的子进程,但有时它不会杀死所有的子进程,我会留下一些孤立的进程。这不是启动时的竞争条件,这是在进程处于活动状态几分钟之后。

什么样的事情会导致 SIGTERM 无法正确传播到某些子进程?