Systemd

如何向 systemd 發送特定(SIG)信號?

  • March 15, 2020

systemd 的手冊頁上,有一個名為Signals的部分,它討論了不同的信號以及它們如何影響系統。

例如,SIGRTMIN+3重新啟動系統:

SIGRTMIN + 3

停止機器,啟動 halt.target 單元。這主要相當於

systemctl start halt.target  --job-mode=replace-irreversibly

和 SIGRTMIN+15 立即重新啟動機器:

SIGRTMIN + 15

Immediately reboots the machine

手冊頁不提供等效命令。我嘗試使用

systemd SIGRTMIN+15

但當我收到錯誤時,這似乎是錯誤的Excess arguments.

我應該如何使用這些信號systemd

首先,它們不是 sigterm。接下來你傳遞一個信號,而不是一個參數。要發送信號,我們使用kill. 見man kill。您必須指定流程。systemd將始終作為程序 1(即 init 程序)執行。

所以送SIGRTMIN+15,做sudo kill -SIGRTMIN+15 1

但是最好使用命令shutdown --poweroff, 或shutdown --reboot.

引用自:https://unix.stackexchange.com/questions/573041