Додавання файлу до /etc/cron.d не змушує його працювати (ubuntu 10.04)


20

Якщо я скапую файл cron в /etc/cron.d, він не запускається, якщо я не редагую файл і не зміню команду. Тоді crond ніби забирає файл cron.

Як я можу змусити cron перезавантажити свої файли cron в ubuntu 10.04? "дотик" до файлу не працює, а також "перезапустити cron" або "reload cron".

Мій файл cron встановлюється, щоб він працював щохвилини і входив у файл. Нічого не закінчується у файлі журналу, поки я не редагую команду, і для неї немає запису в / var / log / syslog

Я тупаю.

Ось мій файл cron, збережений у /etc/cron.d/runscript (зауважте, він закінчується новим рядком)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &

3
Добре, що ви включили користувача, щоб виконати завдання як. Я залишив це, що було причиною моїх неприємностей.
— Едвард Андерсон

1
Через роки не прийнято відповіді? Ви змусили його працювати? Я теж застряг, і загальні підводні камені не здаються проблемою.
— twigmac

Відповіді:


27

Я щойно зіткнувся з цією проблемою, і хоча вона не відповість на ваш конкретний випадок, вона, можливо, допоможе іншим людям поглибити ту саму проблему, оскільки це питання дає дуже високі результати.

Я зберег файл у /etc/cron.d і його проігнорували. У моєму випадку це було тому, що я дав файлам розширення.

mytask.cronне працював, але я перейменував його на mytaskце, і він працював чудово.

Будь-які файли з розширеннями ігноруються, тому переконайтеся, що файл, який ви зберігаєте, не має жодного розширення.


13
Сторінка посібника cron (8) на Debian / Ubuntu в ці дні досить чітко документує: "Підтримка /etc/cron.d включена в самий демон cron [...] Файли в цьому каталозі [...] повинні відповідати до тієї ж конвенції про іменування, яку використовують у пробіжних частинах (8): вони повинні складатися виключно з великих і малих літер, цифр, підкреслень та дефісів. Це означає, що вони не можуть містити жодних крапок ".
— Йосип Родін

15

Перевірте, чи закінчується файл, який ви копіюєте \n. Записи на crontabs, які не мають \nкінця, зазвичай стикаються з проблемами. Найпростіший спосіб забезпечити це - проставити порожній рядок після останнього запису.


1
Я ось-ось збирався редагувати своє запитання, щоб сказати, що це закінчується \ n
— тому

1
Debian / Ubuntu cron попереджає про це в syslog, оскільки 3.0pl1-110 вийшов у 2010 році, пор. запис змін: "Увійдіть у клітковини пропущеного нового рядка перед EOF до syslog. Це стосується лише crontabs, не встановлених через crontab (1), тобто. /etc/cron.d/* та / etc / crontab. Закриває: # 76625"
— Josip Родін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.