J’utilise Ubuntu 14 et j’ai ajouté la ligne suivante à mon crontab:
*/1 * * * * : testing; /usr/sbin/service my-service status > ~/status 2>&1
Après la minute suivante, je vois ceci dans ~ / status:
my-service: unrecognized service
Si je lance ceci depuis le terminal, il reconnaît le service:
~$ /usr/sbin/service my-service status my-service stop/waiting
Je me demande ce qui pourrait être responsable de la non-reconnaissance de mon service dans l’environnement du job cron mais pas de mon environnement quand je ssh au serveur?
J’ai trouvé que cela fonctionne:
*/1 * * * * : testing; /sbin/initctl status my-service > ~/status 2>&1
/usr/sbin/service
fonctionne avec les travaux SystemV (par exemple ceux de /etc/init.d), et sous Ubuntu, les travaux Upstart (par exemple ceux de / etc / init). /sbin/initctl
fonctionne directement avec les travaux Upstart. Donc, je suppose que le mécanisme qui permet à /usr/sbin/service
de voir les travaux Upstart ne fonctionne pas pour une raison quelconque dans l’environnement dans lequel mon travail cron est exécuté, mais je ne sais pas trop comment explorer cela.