Systemd

通過電源按鈕優雅關機

  • February 25, 2017

我希望能夠通過按下電源按鈕來關閉我的 CentOS 7 機器。由於它不能開箱即用,我嘗試了以下方法:

yum -y install acpid
service acpid start
chkconfig acpid on

不幸的是沒有效果,可能是因為這僅對 CentOS 6.x 有效。有誰知道如何通過按電源按鈕啟用關機?

我也有這個問題。

從本質上講,您將在日誌中看到什麼(如果 systemd 配置正確,上述任何一種方法都有效——systemd 為您翻譯舊的“服務”命令……至少在 CentOS7 中)

Nov 20 11:12:06 localhost systemd-logind: Power key pressed.
Nov 20 11:12:06 localhost systemd: SELinux policy denies access

因此,您需要繼續瀏覽 /var/log/audit/audit.log,您會看到如下內容:

init_t:s0 msg='avc:  denied  { start } for auid=-1 uid=0 gid=0 path="/usr/lib/systemd/system/poweroff.target" scontext=system_u:system_r:apmd_t:s0 tcontext=system_u:object_r:power_unit_file_t:s0 tclass=service  exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?'

好的,為什麼系統配置文件不在 /etc 中了?無論如何,我離題了……關於 /u​​sr/lib/systemd/system/poweroff.target 的東西是關閉的?:順便說一句,我真的很喜歡新的自動化文件現在如何混淆自己……現在沒有真正的方向…這個文件完全沒用。這些選項中的任何一個是什麼意思?我猜一些 PFY 管理員的工作保障……對我來說加班更多。(必須是另一個“功能”!)

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Power-Off
Documentation=man:systemd.special(7)
DefaultDependencies=no
Requires=systemd-poweroff.service
After=systemd-poweroff.service
AllowIsolate=yes

[Install]
Alias=ctrl-alt-del.target

好的,至此,我們有足夠的資訊來真正尋找答案。問題是阻止 systemd 關閉系統的 SELinux 策略。

瞧!有一個錯誤: https ://bugzilla.redhat.com/show_bug.cgi?id=1224211

基本上,在評論 #60 左右,他們發現存在策略錯誤。它將通過定期更新修復,但我只想安裝“所有 dvd”中的軟體包。所以,看來我必須等到 CentOS 人員發布 7.2 才能解決這個問題!

RHEL 7 和 Centos 7 已經從 System V (SysV) 啟動腳本和執行級別切換到 systemd。因此,啟動 acpid 的命令應該是:

systemctl start acpid
systemctl enable acpid

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