Shutdown

當我按下電源按鈕時,哪個守護程序或 Linux 命令使 init 0 或關機發生?

  • May 24, 2020

當我按下電源按鈕時,Linux 會進入 init 0(或 shutdown clean)。在過去(2003 年),我必須配置 acpid 才能為電源按鈕提供關機功能。今天在 Slackware-current 我做了:

/etc/apci/event/default

#event=button power.*
#action=/sbin/init 0

我看到該功能用 # 註釋,表示已禁用。所以問題是:當我按下電源按鈕時,哪個守護程序提供了 init 0 功能?其他發行版可能有 systemd,但在 Slackware 上我們沒有 systemd。即使評論了電源按鈕線,它是否也很糟糕?

找到解決方案。Slackware 上的 acpi 電源按鈕由 acpid 守護程序管理,很容易測試:我啟動了一個禁用 acpid 的 vm,當我按下電源按鈕時沒有任何反應。電源按鈕 init-0-way 是預設配置的,在舊發行版上我必須手動編輯它,現在預設啟用,但您可以配置 /etc/acpi/events/default (或您選擇的其他名稱)來配置這種“方式”在另一個莊園。例如,如果我想要來自關機命令的不同消息,我創建一個文件

vim /etc/acpi/events/myway

與那些內容

event=button/power
action=/etc/acpi/button.sh "%e"

最後我用這個內容創建腳本 /etc/acpi/button.sh

 /sbin/shutdown -h now "My message"

我重新啟動 acpid 並開始工作

/etc/rc.c/rc.acpid restart

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