Це може бути трохи заплутаною темою, оскільки існують різні реалізації cron. Також було кілька помилок, які порушили цю функцію, а також є деякі випадки використання, коли вона просто не працюватиме, зокрема, якщо ви робите вимкнення / завантаження проти перезавантаження.
Клопи
точка даних №1
Один з таких помилок у Debian висвітлюється тут під назвою: cron: @reboot завдання не виконуються . Здається, це також зробило шлях до Ubuntu, що я не можу підтвердити безпосередньо.
точка даних №2
Докази помилки в Ubuntu, здавалося б, підтверджені тут, у цьому запитанні SO& W під назвою: @reboot cronjob не виконується .
витяг
коментар №1: .... 3) Ваша версія crond може не підтримувати @reboot чи використовуєте Ви вікс? ... показати результати користувача crontab -l -u
коментар №2: ... Можливо, було б гарною ідеєю встановити його як сценарій init, а не спиратися на певну версію @reboot cron.
коментар №3: ... @MarkRoberts видалив перезавантаження та змінив 1 * * * *, на * / 1 * * * *, проблема вирішена! Куди надсилати позначку представника? Дякую!
У цьому питанні прийнята відповідь також була в цьому коментарі:
Мені здається, Lubuntu не підтримує синтаксис @Reboot Cron.
Додаткові докази
точка даних №3
В якості додаткового доказу з'явилася ця тематика, що хтось намагався зробити те саме, що засмучується, що це не працює. Він має назву: Thread: Cron - @reboot робота не працює .
витяг
Re: Cron - @reboot завдання не працюють
Цитата Повідомлення від ceallred Переглянути повідомлення Це вбиває мене ... Спробував обгортковий сценарій. Запуск вручну генерує файл журналу ... перезавантаження і завдання не запускається або створюється файл журналу.
Syslog показує, що CRON виконував завдання ... але знову ж таки, немає результатів і процес не працює. 15 липня 20:07:45 RavenWing cron [1026]: (CRON) INFO (Запуск завдань @reboot) 15 липня 20:07:45 RavenWing CRON [1053]: (прихований) CMD (/ home / ceallred / Scripts / run_spideroak. sh> /home/ceallred/Scripts/SpiderOak.log 2> & 1 &)
Здається, що cron не любить команду @reboot .... Будь-які інші ідеї?
Гаразд ... Частково вирішено. Я позначу це як вирішене і розпочну нову тему з новим питанням .....
Я думаю, що відповідь полягала в тому, що мій зашифрований домашній каталог не був змонтований, коли CRON намагався запустити сценарій (зберігається в / home / username / script). Переміщено до / usr / скриптів і робота працює як очікувалося.
Тож зараз, мабуть, йдеться про проблему з павуком. Процес починається, але до моменту закінчення процесу завантаження він пройшов. Я здогадуюсь краху чомусь .... Нова тема для запитання про це.
Дякую за всю допомогу!
Як тільки цей вище користувач розібрався у своїй проблемі, він зміг @reboot
розробитись із записом користувача на кронтабі.
Я не зовсім впевнений, яка версія cron використовується на Ubuntu, але це, мабуть, вказує на те, що користувач також може використовувати @reboot
або що помилка була виправлена в якийсь момент у наступних версіях cron.
точка даних №4
Я тестував на CentOS 6 наступне, і це спрацювало.
Приклад
$ crontab -l
@reboot echo "hi" > /home/sam/reboot.txt 2>&1
Потім я перезавантажив систему.
$ sudo reboot
Після перезавантаження.
$ cat reboot.txt
hi
Відволікайте
- Ця функція, мабуть, підтримується як для системних, так і для записів користувачів на кроні.
- Ви повинні переконатися, що він підтримується / працює у вашому конкретному дистрибутиві та / або версії пакету cron.
Детальніше про те, як працює власне механізм, @reboot
я натрапив на цю публікацію в блозі, в якій обговорюються внутрішні. Це під назвою: @reboot - пояснення простої магії хронів .
Налагодження крони
Ви можете збільшити багатослівність crond
, додавши наступне до цього файлу конфігурації у дистрибутивах на основі RHEL / CentOS / Fedora.
$ more crond
# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-L 2"
Дійсні рівні дорівнюють 0, 1 або 2. Щоб повернути цей файл до його рівня реєстрації за замовчуванням, просто видаліть, "-L 2"
коли ви закінчите налагодження ситуації.