вторник, 3 апреля 2018 г.

Выключение компьютера Linux через cron


После успешного применения назначения выполнения пользовательских задач через планировщик заданий cron (см. публикацию на эту тему) возникла необходимость в реализации ежедневного выключения компьютера по расписанию через задание cron.

К сожалению, пользовательское задание в виде исполняемого файла с содержанием:

#!/bin/bash
shutdown

не срабатывает. Для того, чтобы такая задача выполнялась через cron, задание необходимо создать для пользователя root:

 sudo crontab -e

Чтобы в Linux Mint вместо текстового редактора nano был запущен редактор mcedit, команда должна быть такой:

 sudo EDITOR=mcedit crontab -e

В п.2 публикации про пользовательские задания cron указывался способ назначения редактора заданий для редактирования заданий cron пользователя. Но в Linux Mint по умолчанию вход в систему под пользователем root не осуществляется, соответственно – домашний каталог пользователя root не создаётся, что делает невозможным внести необходимые изменения в файл .bashrc

Командой выключения от имени root является не shutdown, а  /sbin/poweroff.

Таким образом, например, для выполнения ежедневного выключения компьютера в 23:30 необходимо записать строку

 30 23 * * * /sbin/poweroff

Примечание. Не забывайте, что после неё необходимо добавить пустую строку.

Проверить существование задания можно командой sudo crontab -l

или в Linux Mint – sudo EDITOR=mcedit crontab -l ,

а самого файла задания – через sudo mc или sudo Ваш_менеджер_файлов, обратившись с каталогу /var/spool/cron/crontabs, в котором будет присутствовать файл root:


Если в дальнейшем необходимость в таком задании исчезнет, то удалите файл root командой терминала sudo crontab - r

2 комментария: