为什么服务器在 /var/log/messages 中使用“systemd: Received SIGINT”重启?
系统重新启动并在日志中显示以下消息。
Raw
Feb 5 09:50:01 server01 systemd: Starting Session 1399 of user root.
Feb 5 09:59:51 server01 systemd: Received SIGINT. <<----
Feb 5 09:59:51 server01 systemd: Stopped target Multi-User System.
问题排查
系统收到一个SIGINT从用户或软件应用程序关闭。
无法从消息中知道命令是由用户给出还是由软件给出
通过禁用来防止将来发生这些事件Ctrl-Alt-Del.target.
根本原因
SIGINT 基本上是一个硬中断。收到 SIGINT 后,systemd 系统管理器将启动ctrl-alt-del.target unit.
这主要相当于systemctl start ctl-alt-del.target.
如果此问题再次发生,要了解根本原因,请遵循以下行动计划。
- 如何跟踪谁/什么向进程发送 SIGKILL?
- 如何通过 SystemTap 确定谁向进程发送了特定信号?
- 如何找到哪个用户重新启动了系统?
诊断步骤
指示 systemd 收到的日志SIGINT kill (#kill -2)来自用户/进程/应用程序的信号。
Feb 5 09:59:51 server01 systemd: Received SIGINT. <<<<---------------
Feb 5 09:59:51 server01 systemd: Stopped target Multi-User System.
- 检查是否有任何系统健康监控软件正在运行,可能会发出ctrl-alt-del?
- 核实是否有个人可以签发ctrl-alt-del.
- 检查是否有任何电源故障或系统组件故障导致系统管理处理器启动关机。
RHEL7 / 8 / 9中禁用Ctrl-Alt-Del
对于 RHEL 3、4、5: 请参阅 如何在红帽企业版 Linux 3、4、5 中按 Ctrl+Alt+DEL 键时禁用系统重启。
对于 RHEL 6: 请参阅 如何在红帽企业版 Linux 6 中禁用 Ctrl+Alt+Del 导致系统重新启动。您需要进行一些更改,具体取决于您的要求和安装的环境。
如何在控制台中禁用 Ctrl-Alt-Del 组合键
如果需要禁用 Ctrl-Alt-Del 组合键基本行为,则需要在禁用目标后屏蔽处理该行为的系统目标:
# systemctl disable ctrl-alt-del.target
# systemctl mask ctrl-alt-del.target
但是,如果在 RHEL7.4 或更高版本上按 Ctrl-Alt-Delete 在 2 秒内超过 7 次,系统仍将重新启动。
如果要完全禁用Ctrl-Alt-Delete,除了上面的命令 systemctl mask ctrl-alt-del.target,请修改配置文件/etc/systemd/system.conf
CtrlAltDelBurstAction=none
然后重新加载 /etc/systemd/system.conf
systemctl daemon-reexec
(注意:不要使用'systemctl daemon-reload',它只会重新加载所有单元文件,而不是systemd本身的配置。)
接下来,当您尝试按 Ctrl-Alt-Del 时,系统将不会重新启动,而是显示日志:
Jul 9 02:33:43 rhel7test systemd: Failed to enqueue ctrl-alt-del.target job: Unit ctrl-alt-del.target is masked.
禁用紧急 Ctrl-Alt-Del 按键
如果您还想禁用紧急Ctrl-Alt-Del按键快速成功重新启动,则可以从 RHEL 7.4开始执行此操作:
其中选项 CtrlAltDelBurstAction 已添加到 systemd 中,选项如下:
CtrlAltDelBurstAction=<ACTION>
定义当用户在 2 秒内按 Ctrl-Alt-Delete 超过 7 次时将执行的操作。可以使用 设置为 reboot-force、 poweroff-forcereboot-immediate、 poweroff-immediate 或 禁用 none。默认值为reboot-force. (摘自 systemd-system.conf 的手册页)
在 GUI 模式下禁用 Ctrl-Alt-Del 组合键
要在 GUI 中禁用它,请更改键盘设置:
方法 1: 禁用它的所有用户
在目录下创建文件 /etc/dconf/db/local.d/ 与要全局应用的设置。例如:
# cat /etc/dconf/db/local.d/00-disable-CAD [org/gnome/settings-daemon/plugins/media-keys]
logout=''
然后更新 dconf 设置:
# dconf update
然后Ctrl-Alt-Del被全局禁用。
方法2:每个用户禁用它(通过在GUI中单击)
导航到 Applications -> System Tools -> Settings -> Keyboard -> 选择 Log out -> 按 BackSpace 将“注销”的值设置为“已禁用”。
方法 3:按用户禁用它(通过 CUI)
我们需要 DBUS_SESSION_BUS_ADDRESS 从已经登录的 GNOME 中检查环境变量的值。例如,一个 testuser 已经登录了GNOME,并形成了GNOME终端,我们使用以下命令:
$ env | grep DBUS_SESSION_BUS_ADDRESS DBU