Задание cron по отключению питания при отключении переменного тока не выполняется

Задание cron по отключению питания при отключении переменного тока не выполняется

Я пытаюсь запустить простой bash-скрипт, который выключает мой ноутбук, если он не подключен к сети переменного тока с помощью задания cron.

Мой сценарий следующий:

#!/bin/bash

if ! on_ac_power; then 
    poweroff          
fi

И я настроил cron на запуск каждую минуту следующим образом:

*/1 * * * * /home/user/Documents/script.sh

Скрипт отлично работает, если запустить его вручную, но в противном случае он, похоже, не оказывает никакого эффекта под cron.

Что я здесь упускаю?

решение1

Во-первых, я не запускал cron под root.

Судя по всему, для запуска cron под root его нужно добавить с помощью sudo crontab -e, все, что добавлено просто с помощью , crontab -eне будет работать как sudo.

Во-вторых, как указано в ссылке:

По умолчанию cron работает в очень ограниченной среде, поэтому многим командам, запускаемым с помощью имени команды из пользовательского терминала, требуется полный путь в crontab или объявление в начале crontab для расширения пути.

Поэтому я в итоге заменил poweroffна /sbin/shutdownв своем скрипте, и теперь он работает так, как и ожидалось.

#!/bin/bash

if ! on_ac_power; 
then 
    /sbin/shutdown        
fi

Ссылка

Связанный контент