Глядя на /etc/cron.d/certbot
, я не думаю, что это будет! В этом файле есть строка:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
и, если я не ошибаюсь, обновление произойдет только в том случае, если есть читаемый исполняемый файл с именем /usr/bin/certbot
(есть) И если естьнеткаталог под названием /run/systemd/system
(но он есть, хотя и пустой).
Так я прав, и certbot -q renew
бит никогда не запустится? Может быть, есть что-то еще, что также запускает обновление? (Я думал, что там может быть что-то, /run/systemd/system
потому что это проверяется, но, как я сказал, его нет. Из любопытства, почемуделаетэтот небольшой скрипт проверяет на несуществование /run/systemd/system
?)
Это последняя версия certbot
(v1.18.0, установлена вчера с помощьюофициальные инструкции) в Ubuntu 18.04.
Кстати, я запустил:
test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --dry-run
как root в командной строке, и он немедленно завершает работу со статусом выхода 1.
решение1
Если система использует systemd
, она будет работать как служба systemd, запускаемая по времени.
Если вы запустите, systemctl status certbot.timer
то получите статус службы, запущенной certbot
из systemd.
Вот почему скрипт cron настроен так, чтобы не запускать обновление, если на машине обнаружен systemd.