Я настраиваю сервер, подключенный к ИБП. ИБП управляется через apcupsd
и он вызывает некоторые сценарии при отключении электроэнергии и когда ситуация возвращается в нормальное русло.
На сервере работает несколько виртуальных машин, запускаемых пользователем. vboxuser
. Я хотел бы изящно остановить виртуальные машины при отключении электроэнергии, и я могу сделать это, запустив vboxmanage
.
Как я могу запустить команду как vboxuser
из скриптов, вызываемых apcupsd
?
Если apcupsd
сценарии запускаются как root, тогда вы сможете просто запускать команды выключения в сценарии, используя sudo
:
/path/to/sudo -u vboxuser /path/to/shutdown-command args
(т.е. создайте сценарий оболочки, который запускается демоном apc, и поместите в него все команды выключения sudo)
Если сценарии не запускаются от имени пользователя root, вы все равно можете использовать sudo, настроив его, чтобы позволить соответствующему пользователю запускать команды выключения от имени vboxuser. В этом случае вам, возможно, придется заглянуть в справочные страницы sudo или дождаться более подробного ответа, который охватывает это, поскольку я никоим образом не эксперт по sudo.