问题标签 [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 投票
1 回答
6505 浏览

python - 为什么我的主线程中没有正确处理 signal.SIGTERM?

我有连续运行的python代码(收集传感器数据)。它应该在启动时使用start-stop-daemon. 但是,我希望能够优雅地终止进程,所以我从如何优雅地处理 SIGTERM 信号?并将我的主循环放在一个单独的线程中。我希望能够在它作为守护进程运行时(start-stop-daemon将发送终止信号)和我自己在终端中短暂启动它以进行测试(我按ctrl-c)优雅地关闭它。

但是,如果我终止进程,似乎不会调用信号处理程序(即使不使用线程,“ done (killed)”也不会出现在我重定向到的文件中)。当我按下 时ctrl-c,收集会继续并在终端(或我重定向到的文件)中保持打印数据。

我在下面的代码中做错了什么?

0 投票
1 回答
3042 浏览

ruby-on-rails - PUMA,试图停止服务器,无效信号,号码或名称

我试图用我在这里找到的脚本来停止 puma 服务器 -->脚本

当我尝试停止它时,它给了我这个错误

我在这里想念什么?

0 投票
1 回答
680 浏览

c++ - 让 Gnu Screen 将 SIGTERM 信号传递给子进程,让它们干净地关闭

我们正在使用 Upstart 启动/终止内部开发的二进制文件。

在此二进制文件的 Upstart 配置文件中,我们将脚本定义为:

当运行级别设置为 5 时,Upstart 启动脚本。当运行级别设置为 3 时,Upstart 将终止脚本。

我的问题是,Upstart 正在发送一个 SIGTERM,然后是一个 SIGKILL。

SIGTERM 由屏幕“处理”,而不是由我的自定义二进制文件,因此我们二进制文件中的信号处理程序没有得到 SIGTERM,因此无法干净地关闭。

我已经验证了我们二进制文件中的信号处理程序确实允许它在不通过屏幕启动时干净地关闭。

0 投票
2 回答
16716 浏览

ruby-on-rails - Heroku 记录 FATAL SignalException: SIGTERM

我不明白为什么我会遇到这个FATAL 异常。它在localhost.

我知道这SIGTERM只是一个终止程序的信号,我不认为解决方案是处理或忽略它。

当我查看已部署的网站时,它显示为白页。如何修复此错误,以便我的应用程序可以正常显示?

这是我的 Heroku 日志:

0 投票
1 回答
50 浏览

ruby-on-rails - 无法再启动散居服务器

直到几个小时前,我的侨民舱都没有问题。Diaspora 消失了,从那时起,就不可能再重新打开它了。

首先,这是我的终端输出:

http://pastebin.com/PZeusSsK


输出:/script/get_config.rb server.rails_environment => 生产

输出:echo $RAILS_ENV (空格)

输出:echo $RACK_ENV (空格)


这是我的 sidekiq.log 的结尾:

http://pastebin.com/Ep9s02Tb

0 投票
1 回答
329 浏览

python - 使用主管(Linux)在关机期间保持程序最后运行

我有一个带有主管的服务器,它运行两个程序。我们称它们为程序 A 和程序 B。当服务器关闭时。程序 A 的执行在程序 B 之前终止,导致在关机完成之前出错。有没有办法使用Supervisor来确保程序A永远不会在程序B之前停止?实际上,如果程序 A 没有获得 SIGTERM 以便它可以一起忽略它(并继续运行直到程序 B 被关闭之后),这实际上并不重要。)

0 投票
1 回答
148 浏览

linux - 给出 SIGTERM 后,在多大程度上可以依赖写入磁盘?

我正在为 Linux 开发,并且有一个守护进程,当它被杀死时应该写入磁盘。可以将守护进程配置为SIGTERM在接收到该信号时侦听和写入磁盘。

我也熟悉登录管理器PrepareForShutdown发出的 D-Bus 信号。与禁止关闭和监听信号相比,监听会产生更简单的代码。另一个优点是它可以处理守护进程被礼貌地杀死的情况,即使系统关闭也是如此。SIGTERMPrepareForShutdownSIGTERM

但是,我不确定依靠SIGTERM内核在关闭时发送的信号有多安全。在关机时SIGTERM总是发送给每个进程有足够的时间来执行一个小的(< 1 kB)写入磁盘?

我担心的一个问题是,我可能有足够的时间在某些硬件上写入磁盘,但在其他硬件上却没有,因此似乎很难测试。信号也可以这样说PrepareForShutdown,但至少为磁盘写入留出足够的时间是该信号合同的一部分。SIGTERM我的问题是每个进程在关闭时收到的信号是否可以这样说。

0 投票
1 回答
129 浏览

php - 在 SIGTERM 之前在 php 中执行函数

我正在通过 Windows 控制台执行 PHP 脚本。我有一些将结果写入文件的结束函数。无论如何,有时我必须中断执行(ctrl + c)并停止脚本。我有兴趣以某种方式将当前进度写入键击和实际 sigterm 之间的文件。这可能吗 ?下次我运行它时,我真的需要能够从最后一点恢复我的脚本执行。谢谢 !

0 投票
2 回答
317 浏览

shell - 使用 SIGTERM 杀死 Subshel​​l

我确信这真的很简单,但无论如何它都在咬我的脸,我有点沮丧和难过。

所以,我有一个脚本,我设法归结为:

如果我在命令行运行它,然后按 Ctrl-C 它会停止,就像我期望的那样。

如果我使用 kill 发送信号,它什么也不做。我觉得这很奇怪,因为我认为那些应该是一样的。

然后,如果我发送它 sigterm,那么它也会死掉,但是如果我在 ps 中查看,sleep 仍在运行。

我在这里错过了什么?

这显然不是真正的运行 python 的脚本,而且当它在 start-stop-daemon 试图杀死守护进程后继续运行时,问题就更大了。

帮助我的人。我很笨。

0 投票
2 回答
212 浏览

java - 外部 java 程序:句柄 SIGTERM

我有在主机上运行的 java 程序(带有 gui)。在运行时,用户可以添加一些数据记录。该程序只适用于他们。

稍后系统可能会关闭或程序刚刚被 SIGTERM 关闭。

不幸的是,如果用户用“X”手动关闭,porgram 似乎只存储数据记录。

现在我有一个问题,如果程序被 SIGTERM 关闭,我可能会丢失一些数据。不幸的是,没有联系电子邮件地址要求作者进行更改。

我试图用“jd gui”反编译它,它似乎或多或少地工作。我想我可以添加信号处理程序并调用“窗口关闭”方法。

但是“jd gui”创建了这样的代码:

如果我尝试编译源代码,我还会遇到许多其他错误。

我认为这是因为 jar 文件被某些工具混淆了。不幸的是,反编译的代码不起作用,我无法使用 JFrame 重新编译文件。

长话短说:是否可以编写一个“包装程序”,它只处理 SIGTERM,然后调用主框架(这是唯一的 JFrame)的 JFrame“关闭方法”(或如何调用它)?

我只是不知道如何调用外部运行的java程序的这种方法。

非常感谢。

最好的问候凯文