signals

记录 limits.conf 中的规则违规行为
signals

记录 limits.conf 中的规则违规行为

我正在尝试记录由于 limits.conf 中定义的限制上限而失败的程序的详细信息。我最初的计划是使用审计系统。这个想法是跟踪 limits.conf 中与限制相关的失败的系统调用。但是这种方法的问题在于,无法跟踪 CPU 时间的违规,因为违规不涉及系统调用失败。在 CPU 时间的情况下,会发生一件事,即违反 CPU 时间的程序将收到 SIGXCPU。所以我的问题是我应该如何记录违反 CPU 时间的程序?此外,是否有可用的 limits.conf 特定日志? ...

Admin

如何找到哪个进程向我的 node.js 进程发送了 HUP 信号?
signals

如何找到哪个进程向我的 node.js 进程发送了 HUP 信号?

每个星期一 UTC 上午 9 点,某个进程都会HUP向我的 node.js 进程发送一个信号(我认为 HUP 会发送给所有进程,而不仅仅是我的进程)。如何找到哪个进程HUP向我的程序发送了信号?我的程序有一个 HUP 处理程序,可以让它重新启动(重新加载配置),所以每个星期一上午 9 点,我的生产堆栈都会自行重新启动(但会继续运行,所以一切都很好,只是非常烦人)。 我感觉这是 systemd 做的,只是不知道 systemd 的哪个部分在做。有什么想法吗? 这是 Debian 11.7 安装。 ...

Admin

如何向 Docker 容器发送信号而不影响重启策略?
signals

如何向 Docker 容器发送信号而不影响重启策略?

TIL 这docker kill意味着杀死“让它死掉”,与 POSIX 意义上的“发送信号”相反。 我们有几个容器需要发送一个SIGHUP来重新加载配置,但这导致它们忽略“始终”的重启策略,这不是我们想要的。 在不影响这些容器自动重启能力的情况下向其发送信号的最佳方法是什么? 为了更清楚地说明我们看到的问题,请看以下示例。 我们有一些容器的重启策略设置为始终 $ docker inspect cloudwatch-exporter | jq .[].HostConfig.RestartPolicy { "Name": "always", "Maxi...

Admin

让 systemd 服务稍后停止而不阻塞“systemctl stop”
signals

让 systemd 服务稍后停止而不阻塞“systemctl stop”

我有一堆服务负责运行从队列中消耗的操作。 我希望能够轻轻地重启服务(不中断已经运行的操作) 可以通过处理 systemd 发送的 SIGTERM 并保存程序在当前操作处理完毕后应退出的信息来解决。 还有一个小问题,即TimeoutStopSec在服务配置文件中定义的一段时间后,systemd 将发送额外的 SIGKILL 来粗暴地终止我的进程。 我可以通过设置轻松避免它TimeoutStopSec=infinity。然后systemctl stop我会等到脚本自行终止,这可能会持续一个多小时,并导致我遇到主要问题。 我不希望systemctl命令等到脚...

Admin

记录由于信号而退出的 Linux 进程?
signals

记录由于信号而退出的 Linux 进程?

很久以前运行 FreeBSD 时,有一个默认功能,当进程收到致命信号(如 SIGSEGV、SIGBUS、SIGKILL 等)并因此终止时,它会进行记录。 Linux 上有类似的东西吗? ...

Admin

Docker 容器内的进程没有接收到信号?
signals

Docker 容器内的进程没有接收到信号?

我在 Docker 容器中有一个进程,该进程应该在关闭时记录线程转储(在 stdout 上)。但是当docker stop调用它时,没有输出。 看起来要么是进程没有接收到 TERM 信号,要么是在关闭完成之前输出就被分离了。 我在 Dockerfile 中仅使用了CMD(否):ENTRYPOINT CMD java ${MY_JAVA_OPTS} my-uberjar.jar 如何在关机时获得输出? ...

Admin

Ctrl+C 不再能在 bash 中获取新的空白行
signals

Ctrl+C 不再能在 bash 中获取新的空白行

我一直在大多数终端上使用 Ctrl+C 来轻松取消我正在写的行并打开新行。(我不是说要终止正在运行的 bash 脚本,而只是打开一个新的空白行)不知为何,这个功能在通过 SSH 打开的远程 shell 上被关闭了。 Ctrl+C 在大多数情况下都可以起作用(例如终止正在运行的脚本、退出 VIM 插入模式),但不会再在常规 shell 中跳过该行并转到下一行。 这是在 Amazon Linux 2 上运行的 shell,但我在其他 Amazon Linux 2 机器上从未遇到过这个问题,所以它可能来自于我所做的事情...... 知道可能发生了什么事以及如...

Admin

背景
signals

背景

背景 我被要求systemd为新服务创建一个脚本,foo_daemon该服务有时会进入“不良状态”,并且不会通过SIGTERM(可能是由于自定义信号处理程序)终止。这对开发人员来说是个问题,因为他们被指示通过以下方式启动/停止/重新启动服务: systemctl start foo_daemon.service systemctl stop foo_daemon.service systemctl restart foo_daemon.service 问题 有时,由于foo_daemon陷入不良状态,我们必须通过以下方式强制终止它: sys...

Admin

ssh 远程命令:被信号 15 终止
signals

ssh 远程命令:被信号 15 终止

脚本: #!/usr/bin/env bash set -e set -u set -x set -o pipefail hosts=( host1 host2 ) for host in ${hosts[@]} do ssh $host 'pids=$(ps -aux|pgrep -f "/usr/bin/nmon"); kill $pids; wait $pids 2>/dev/null' done 输出: + for host in '${hosts[@]}' + ssh host1 'pids=$(ps -aux|...

Admin

sigkill 和 sigabrt 有什么区别?
signals

sigkill 和 sigabrt 有什么区别?

前几天,我使用 sigabrt 时,python 应用程序暂停了,但我知道 init 应该发送 sigkill 信号。我很好奇它们之间有什么区别(如果有的话)?有人可以给我一些资源来阅读更多相关信息吗? ...

Admin

到达“启动 Web 服务器”后,服务器继续重启
signals

到达“启动 Web 服务器”后,服务器继续重启

最近我们的一台服务器出现故障,无法启动服务。我查看了一下/var/log/messages,发现了以下情况: Dec 27 00:53:48 localhost apcupsd[3413]: apcupsd FATAL ERROR in linux-usb.c at line 609 Cannot find UPS device -- For a link to detailed USB trouble shooting information, please see <http://www.apcupsd.com/suppo$ Dec 27 00:...

Admin

如何编写一个 bash 脚本来捕获 SIGTERM 并立即终止进程和所有子进程
signals

如何编写一个 bash 脚本来捕获 SIGTERM 并立即终止进程和所有子进程

我有这个脚本: #!/bin/bash set -e #WHAT SHOULD I WRITE HERE? sleep 60 # this is for testing #java ... | logger # this is what will be in the real script 我希望能够通过向 myscript 发送 SIGTERM 来终止 myscript 及其所有子进程: $ kill -s SIGTERM 5929 当我运行它时我看到ps fuxa: me 3640 0.0 0.1 108416 2100 pts/2...

Admin

Apache Kafka 0.8.1.1 干净关闭不起作用
signals

Apache Kafka 0.8.1.1 干净关闭不起作用

我有一个: 从源安装的 Apache Kafka(2.9.2-0.8.1.1)单实例,使用默认配置(server.properties等), Zookeeper(3.4.5+dfsg-2)独立版,从包中安装 ..在名为 的 Ubuntu 14.04 LTS 主机上运行hostname1。 我尝试彻底关闭 Kafka,但是做不到。 我尝试了两种方法: 发送 SIGINT - 但 Kafka 只是忽略它(没有提到在任何日志中接收信号,继续运行)[SIGTERM 有效,但这不是重点] 使用受控关机工具- 但出现以下情况失败...... .....

Admin

ubuntu upstart 永远不会终止我的进程
signals

ubuntu upstart 永远不会终止我的进程

我有一个简单的 bash 脚本: echo "Starting" function sigint { echo "sigint" } function sigterm { echo "sigterm" } trap sigterm SIGTERM trap sigint SIGINT while true do sleep 2 echo "-" done 我使用这个配置文件通过 upstart 启动这个脚本: description "start trapper" kill timeout 1 script ./hom...

Admin