Comment déboguer les scripts Upstart?

67

Pour une raison quelconque, je reçois une erreur lors des mises à niveau de répartition , la cause dont est

% sudo service apport start
start: Job failed to start

Sous sysvinit, je pourrais déboguer ce type de problème en exécutant par exemple

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 au installer procéder Mais je suis toujours intéressé par la question générale de savoir comment tracer le script.

    
posée poolie 21.04.2011 - 02:01
la source

2 réponses

29

Toutes les informations suivantes (et bien plus d’aide au démarrage) proviennent de Le livre de cuisine Upstart . La section 18 couvre le débogage. lien

Dans ce cas particulier de traçage d'une strophe "script" d'un travail 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 étrange est que /dev/.initramfs/ est disponible au tout début du démarrage, avant que le système de fichiers racine ait été chargé et continue d’être disponible après le démarrage. Je devine avec apport, cependant, vous n'avez probablement pas besoin d'utiliser ce chemin. Pourtant, il est bon de connaître l’option.

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

Je recommande fortement de consulter le livre de recettes Upstart lié en général à toute personne travaillant avec des travaux Upstart.

    
réponse donnée Mark Russell 21.04.2011 - 02:52
la source
109

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

    
réponse donnée Muhammad Gelbana 02.09.2012 - 17:32
la source

Lire d'autres questions sur les étiquettes