68 votes

Comment déboguer les scripts de Upstart ?

Pour une raison quelconque, j'obtiens un erreur lors des mises à niveau de l'apport dont la cause est

% sudo service apport start
start: Job failed to start

Sous sysvinit, je pouvais déboguer ce genre de problème en exécutant eg

sudo sh -x /etc/init.d/whatever start

mais cela ne semble pas correspondre à Upstart. Que dois-je essayer ensuite ?

Il s'avère que il existe une solution de contournement qui permettra de poursuivre l'installation. Mais je suis toujours intéressé par la question générale de savoir comment on pourrait tracer le script.

111voto

Muhammad Gelbana Points 3226

Upstart enregistre l'exécution de votre service dans un fichier de log du même nom dans /var/log/upstart/your-service-name.log . Cela devrait être utile.

31voto

Jon Sagara Points 697

Toutes les informations suivantes (et beaucoup d'autres aides utiles pour Upstart) proviennent de Le livre de cuisine Upstart . La section 18 couvre le débogage. http://upstart.ubuntu.com/cookbook/#debugging

Dans ce cas spécifique de traçage d'une strophe "script" d'un job Upstart, vous devez ajouter les lignes suivantes juste en dessous du mot "script" :

exec 2>>/dev/.initramfs/myjob.log
set -x

La raison de cet emplacement bizarre est que /dev/.initramfs/ est disponible au tout début du démarrage, avant que le système de fichiers racine ne soit chargé, et continue d'être disponible après le démarrage. Je suppose qu'avec l'apport, cependant, vous n'avez probablement pas besoin de besoin de pour utiliser ce chemin. C'est quand même bien de connaître cette option.

Il convient également de noter que tous les scripts sont exécutés avec set -e donc toute commande qui échoue quittera le script entièrement. Ce qui est logique, car il faut être très prudent lorsqu'on exécute script en tant que root.

Je recommande vivement à tous ceux qui travaillent avec des emplois Upstart de consulter le Upstart Cookbook dont le lien figure ci-dessus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X