
Я хочу иметь возможность выключать машину CentOS 7, нажав кнопку питания. Поскольку это не работает из коробки, я попробовал следующее:
yum -y install acpid
service acpid start
chkconfig acpid on
К сожалению, без эффекта, вероятно, потому что это было действительно только для CentOS 6.x. Кто-нибудь знает, как включить выключение нажатием кнопки питания?
решение1
RHEL 7 и, следовательно, Centos 7 перешли от сценариев запуска и уровней запуска System V (SysV) к systemd. Таким образом, команды для активации acpid должны быть следующими:
systemctl start acpid
systemctl enable acpid
решение2
У меня тоже была эта пробема.
По сути, то, что вы увидите в своих журналах (если systemd настроен правильно, любой из приведенных выше методов работает — systemd транслирует старые команды «service» для вас... по крайней мере, в 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? В любом случае, я отвлекся... что-то в /usr/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
Хорошо, на данный момент у нас достаточно информации, чтобы действительно искать ответ. Проблема в политике SELinux, которая не позволяет systemd завершить работу системы.
И вуаля! Есть баг против этого: https://bugzilla.redhat.com/show_bug.cgi?id=1224211
По сути, где-то около комментария #60 они выясняют, что есть ошибка политики. Она будет исправлена с помощью регулярных обновлений, но я хотел установить только пакеты из 'everything dvd'. Так что, похоже, мне придется ждать, пока ребята из CentOS не выпустят 7.2, чтобы исправить эту проблему!