Не выполняется задание Cron для выключения питания при отключении переменного тока

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

Мой сценарий выглядит следующим образом:

#!/bin/bash

if ! on_ac_power; then 
    poweroff          
fi

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

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

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

Что я упускаю?

0
задан 23 August 2021 в 18:26

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

Ссылка

1
ответ дан 4 September 2021 в 09:28

Другие вопросы по тегам:

Похожие вопросы: