Здравствуйте.
Настроил NUT на сервере по управлением CentOS 7.3. При пропадании питания сервер должен выключаться через N-секунд. Всё настроено корректно. Счетчик включается. Тикает. По завершении счетчика, запускается, как положено, скрипт upssched-cmd. Все команды (логирование) в нем выполняются, кроме самой команды на завершение работы.
Логи
upsmon: UPS ippon@localhost on battery
wall[7278]: wall: user nut broadcasted 1 lines (32 chars)
upssched[7281]: Timer daemon started
upssched[7281]: New timer: onbatt (20 seconds)
upsmon: Network UPS Tools upsmon 2.7.2
upssched-cmd: 60 seconds on battary - halt system and poweroff UPS after 5 min
upssched[7281]: Timer queue empty, exiting
Скрипт upssched-cmd
case "$1" in
onbatt)
logger -t upssched-cmd "60 seconds on battary - halt system and poweroff UPS after 5 min"
/usr/bin/sudo /usr/bin/shutdown -h +0
;;
upsgone)
logger -t upssched-cmd "The UPS has been gone for awhile"
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
Пользователя nut занес в sudoers, чтобы имел право на выключение
nut localhost=NOPASSWD: /usr/bin/shutdown
Если запускаешь этот скрипт upssched-cmd в консоли от пользователя nut, то система выключается, как положено. Но почему-то не при исполнении его через NUT.
Есть подозрение, что это дело рубится каким-нибудь systemd или selinux, но не хватает знаний. Когда тестирую это дело - выключаю UPS из розетки - то залогинена еще пара терминалов root для мониторинга логов. Может в этом дело?
Буду рад помощи. Спасибо.