web-dev-qa-db-fra.com

Essayer d'arrêter un service avec cron

Sur mon serveur Ubuntu 11.04 lorsque j'essaie de courir

 service powernap stop

en tant que tâche cron avec l'utilisateur root, il échoue et me donne ce message dans syslog

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

et cela est envoyé par courrier électronique au compte de messagerie de l'utilisateur root

 exec: 129: stop: not found

Je peux démarrer et arrêter le service powernap à partir de la ligne de commande, alors pourquoi ne fonctionne-t-il pas avec cron?

3
Luke Stapley

On dirait que /sbin n'est pas dans $PATH lors du démarrage à partir de cron. Ajouter une ligne comme

PATH = /sbin:$PATH

dans le fichier crontab.

4
Florian Diesch

J'ai eu exactement ce problème, et il semblerait que la variable $PATH soit complètement vide lorsque crontab est exécuté. Il ne suffit donc pas de placer PATH=/usr/sbin;$PATH en haut de la liste des crontabs.

Donc, ce que j'ai fait était (puisque je lance cette crontab en tant que root, je peux donc désactiver le proxy squid):

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

et cela semble avoir fonctionné.

2
james

Hmmm ... c'est étrange que cron essaie de courir "stop" ...

Essayez de faire fonctionner cron à la place:

sh -c '/usr/sbin/service powernap stop'
1
Andrew Gunnerson