Попытка остановить службу с помощью cron

На моем сервере Ubuntu 11.04 при попытке запустить

 service powernap stop

как работа cron с пользователем root, она не работает и выдает мне это сообщение в системном журнале

 NAS CRON[10853]: (CRON) error (grandchild #10854 failed with exit status 2)

и это по электронной почте на учетную запись пользователя root

 exec: 129: stop: not found

Я могу запускать и останавливать службу powernap из командной строки, так почему она не работает из cron?

3 ответа

Решение

Похоже /sbin не в $PATH при запуске из cron. Добавить строку как

PATH = /sbin:$PATH

в файл crontab.

Хм... странно, что cron пытается запустить "стоп"...

Попробуйте сделать так, чтобы cron запустил это:

sh -c '/usr/sbin/service powernap stop'

У меня была именно эта проблема, и казалось бы, что $PATH переменная полностью пуста при запуске crontab, поэтому недостаточно PATH=/usr/sbin;$PATH в верхней части списка crontab.

Итак, что я сделал (так как я запускаю этот crontab как root, так что я могу отключить прокси-сервер squid):

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

и, похоже, сработало.

Другие вопросы по тегам