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

amazon-ec2 - EC2 上的 Apache Server 2.4 “捕获 SIGTERM 正在关闭”

我在 EC2 上的 m3.large 实例上使用 amazon linux。在我的 apache 服务器关闭之前,我有这些日志:

而且..就是这样。我的 httpd 服务已关闭。

我在这里闻到的是,有些人试图通过执行带有 GET 请求的 CGI 脚本来访问服务器,我在这一行中发现了这一点:

找不到脚本或无法统计:/var/www/cgi-bin/hi

这里的“嗨”到底是什么意思,除非它不是剥削尝试?

还:

尝试将目录作为脚本调用:/var/www/cgi-bin/

他们都来自同一个IP,173.45.100.18。

我是否受到 DDoS 和其他恶意攻击,或者发生了什么神秘的事情?

0 投票
1 回答
2773 浏览

shell - 如果默认 CMD 是 shell 脚本,则 Docker 停止退出代码 -1

我正在使用 supervisord 在 Docker 中构建一个 tomcat 容器。如果 Dockerfile 中的默认命令是

当我发送 docker stop 命令时,容器成功退出,退出代码为 0。

但是如果我有

在 run.sh 中,

docker stop 命令给了我一个退出代码-1。查看日志时,supervisord 似乎没有收到指示退出请求的 SIGTERM。

与以前的日志相反,它接收 sigterm 并优雅地退出。

任何帮助表示赞赏。

谢谢, 卡提克

更新

supervisord.conf 文件

0 投票
1 回答
4387 浏览

linux - SIGKILL 前多久

我试图弄清楚在收到 SIGTERM 时,应用程序在发送 SIGKILL 之前有多少时间退出?

我对这些信号的了解非常少。我已经在 Stackoverflow 上的建议答案中阅读了其中的一些内容,但我无法大致了解一个进程在被 SIGTER 终止之前可以存活多少时间。

编辑:例如,假设我创建了一个故意阻止操作系统关闭的问题(也许while(1)可以做到?)

我正在寻找标准 Linux 发行版上没有 MMI 的进程的答案,比如带有内核 3.x 的 Ubuntu。

我的猜测是没有等待时间。如果进程消失,系统会给它时间来释放它的资源。否则,系统会杀死它。

0 投票
1 回答
17166 浏览

swift - Thread1:在 IOS 模拟器中更改硬件时发出信号 SIGTERM(快速)

我的 swift 应用程序是为某些 IOS 设备设置的,并且在 IOS 模拟器中运行良好,

但是,在 IOS 模拟器中更改硬件时,我在 swift Thread1 中收到错误:signal SIGTERM。

我可以为IOS设备iPhone 6设置swift,IOS模拟器运行iPhone 6,但不能更改为其他硬件(如iPhone 4S)。我可以为 IOS 设备 iPhone 4S 设置 swift,并且 IOS 模拟器在 iPhone 4S 上运行良好,但在更改硬件时出现错误(例如之前运行良好的 iPhone 6)。

因此,我很确定 swift 应用程序逻辑是正确的。

我该如何解决这个问题?

0 投票
1 回答
828 浏览

r - 我可以在 R 中捕获信号吗?

在 bash 中,我可以捕获SIGINTSIGKILLSIGTERM等。这使我可以根据程序意外停止的方式做不同的事情。

有没有办法在 R 中做到这一点?

0 投票
2 回答
3327 浏览

node.js - docker stop 不适用于节点进程

我希望能够在 docker 容器内运行 node,然后能够运行docker stop <container>. 这应该停止容器,SIGTERM而不是超时并执行SIGKILL. 不幸的是,我似乎遗漏了一些东西,而且我发现的信息似乎与其他内容相矛盾。

这是一个测试 Dockerfile:

这是test.jsDockerfile中提到的:

我像这样构建它:

我像这样运行它:

然后我运行:

因此SIGTERM显然不起作用,导致它在 10 秒后超时然后死亡。

我发现如果我启动节点任务,那么我可以从交互式( )容器sh -c中杀死它,但我仍然无法开始工作。这与我读过的评论相矛盾,说不传递信号,但可能同意我读过的其他评论说 PID 1 没有得到(因为它是通过 启动的,它将是 PID 2)。^C-itdocker stopshSIGTERMsh

最终目标是能够docker start -a ...在新贵作业中运行并能够停止服务并实际退出容器。

0 投票
1 回答
1966 浏览

c - 无法使用 sigaction 函数捕获 SIGTERM

我编译了程序。启动它并等待。我打开另一个终端,并使用命令“kill pid”或“kill -15 pid”或“kill -SIGTERM pid”杀死任何正在运行的程序(将 PID 替换为实际的进程 ID)。被杀死的程序退出,但无法捕获 SIGTERM 以打印“完成”。

我在这里复制代码:https ://airtower.wordpress.com/2010/06/16/catch-sigterm-exit-gracefully/ 。

我可以帮你吗?我很感激所有的答案。

0 投票
2 回答
1977 浏览

gdb - 使用 GDB 调试 SIGTERM

我在 stackoverflow 上搜索了几个关于调试 SIGTERM 的问题,但没有得到我需要的信息。也许,我对这个问题还是陌生的。

我的程序在没有核心转储的情况下以 SIGTERM 信号终止,我不知道如何追踪它。我的问题是,在 GDB 中调试此问题的一般方法是什么?

谢谢。

0 投票
1 回答
1192 浏览

php - 运行线程时使用 pcntl_signal 关闭 php 进程

运行线程时,使用 注册的函数pcntl_signal永远不会被触发。

然后,在终端中:

没有线程时工作正常:

在运行线程时发送 SIGTERM 时如何执行一些代码?我正在使用:php-5.6.7、pthreads-2.0.10、debian-7

0 投票
3 回答
3181 浏览

python - 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关闭工作人员

我已经对此进行了大量研究,但我很惊讶我还没有在任何地方找到一个好的答案。

我在 Heroku 上运行一个大型应用程序,并且我有某些 celery 任务运行很长时间处理,并在任务结束时保存结果。每次我在 Heroku 上重新部署时,它都会发送 SIGTERM(最终发送 SIGKILL)并杀死我正在运行的工作人员。我试图找到一种方法让工作实例优雅地关闭自己并重新排队以供稍后处理,以便最终我们可以保存所需的结果而不是丢失排队的任务。

我找不到让工作人员正确收听 SIGTERM 的方法。我得到的最接近的,它在python manage.py celeryd直接运行时有效,但在使用工头模拟 Heroku 时无效,如下所示:

当我开始在工头中运行这个 celery 任务并按 Ctrl+C 时,会发生以下情况:

所以很明显,没有一个 celery 异常,也没有我在其他帖子中看到的KeyboardInterruptorSystemExit异常,正确地捕获了 SIGTERM 并关闭了工作程序。

这样做的正确方法是什么?