it-swarm-eu.dev

Jak ladím skripty Upstart?

Z nějakého důvodu dostávám chyba během upgradu apport , jehož příčina je

% Sudo service apport start
start: Job failed to start

Za sysvinitu jsem mohl tento problém odladit spuštěním např

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

ale nezdá se, že by to bylo namapováno na Upstart. Co bych měl zkusit dál?

Ukázalo se existuje řešení , které umožní instalaci pokračovat. Stále mě ale zajímá obecná otázka, jak by se scénář vystopoval.

67
poolie

Všechny následující informace (a mnohem mnohem užitečnější pomoc s upstartem) jsou z The Upstart Cookbook . Oddíl 18 se týká ladění. http://upstart.ubuntu.com/cookbook/#debugging

V tomto konkrétním případě trasování "skriptu" stanzy úlohy Upstart byste měli přidat následující řádky přímo pod "skript" Wordu:

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

Důvodem lichého umístění je to, že /dev/.initramfs/ je k dispozici ve velmi časném spuštění, před zavedením kořenového systému souborů a po spuštění bude k dispozici i nadále. Hádám s apportem, ale asi nebudete muset tuto cestu používat. Přesto je hezké znát možnost.

Je třeba také poznamenat, že všechny skripty jsou spouštěny s set -e takže každý příkaz, který selže, ukončí skript úplně. Což dává smysl, protože při spouštění skriptů jako root by měl být člověk velmi opatrný.

Velmi doporučuji konzultovat výše uvedenou kuchařku Upstart obecně pro kohokoli, kdo pracuje s úlohami Upstart.

30
Mark Russell

Upstart zaznamenává provádění služby do souboru protokolu se stejným názvem v /var/log/upstart/your-service-name.log. Mělo by to být užitečné.

110