Я хочу запустить задание cron для очистки файлов для временного пользователя на рабочем столе Ubuntu 20.04. Поскольку система не будет регулярно полностью отключаться (для чего я мог бы просто использовать @reboot /path/to/my_script.sh
), есть ли способ запланировать выполнение задания cron, когда компьютер приостановлено? Все, что я вижу в Google, связано с запуском заданий cron, когда компьютер приостановлен, но я бы хотел использовать приостановку или пробуждение в качестве триггера для этого задания cron.
Такой триггер не предназначен для cron. Cron - это триггер на основе часов. @reboot - это удобство, добавленное в cron.
Одним из решений для приостановки / удаления заданий является управление питанием.
man pm-suspend
Используйте case
, чтобы определить, что происходит во время сна и что происходит при возобновлении:
case "${1}" in
suspend)
suspend_actions
;;
resume)
resume_actions
;;
esac
Другое аналогичное решение - использовать systemd .
. Оба этих метода, возможно, можно считать немного взломанными: не используйте их для реальных приложений, а также длительных задержек до приостановки. Вместо этого используйте запрет .
systemd
Создайте файл /lib/systemd/system-sleep/my_script.sh
со следующим содержанием:
#!/bin/bash
case $1/$2 in
pre/*)
# commands to be executed before suspend, hibernate, etc. goes below
echo "This example does nothing"
;;
post/*)
# commands to be executed on wake, resume, etc. goes below
echo "Nothing to see here"
;;
esac
Отредактируйте и добавьте команды, необходимые для добавьте вместо строк, начинающихся с echo
выше. Сохраните файл и сделайте его исполняемым. См. Как сделать файл (например, сценарий .sh) исполняемым, чтобы его можно было запускать с терминала для получения дополнительной информации.
Надеюсь, это поможет