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

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

systemd 的線上說明頁,有一個部分稱為訊號,討論不同的訊號以及它們如何影響系統。

例如,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

答案1

首先,它們不是 sigterm。接下來你傳遞一個訊號,而不是一個參數。為了發送信號,我們使用kill.看man kill。你必須指定過程。systemd將始終作為進程 1(init 進程)運行。

故送SIGRTMIN+15,做sudo kill -SIGRTMIN+15 1

不過,最好使用指令shutdown --poweroff, 或shutdown --reboot

相關內容