Come si esegue il debug degli script Upstart?

67

Per qualche motivo, ricevo un errore durante gli aggiornamenti apportati alle modifiche , la causa di cui è

% sudo service apport start
start: Job failed to start

Sotto sysvinit, ho potuto eseguire il debug di questo tipo di problemi eseguendo, ad esempio,

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

ma non sembra mappare su Upstart. Cosa dovrei provare dopo?

È risultato che esiste una soluzione che consentirà installare procedere. Ma sono ancora interessato alla domanda generale su come si dovrebbe tracciare lo script.

    
posta poolie 21.04.2011 - 02:01

2 risposte

29

Tutte le seguenti informazioni (e molto più utile aiuto Upstart) è Upstart Cookbook . La sezione 18 riguarda il debug. link

In questo caso specifico di tracciare una stanza "script" di un lavoro Upstart dovresti aggiungere le seguenti righe proprio sotto la parola "script":

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

Il motivo della strana posizione è che /dev/.initramfs/ è disponibile all'avvio molto presto, prima che il file system di root sia stato caricato, e continua ad essere disponibile dopo l'avvio. Sto indovinando con apport, tuttavia, probabilmente non bisogno di usare quel percorso. Comunque, è bello sapere l'opzione.

Va ​​inoltre notato che tutti gli script vengono eseguiti con set -e , quindi qualsiasi comando che non riesce uscirà completamente dallo script. Il che ha senso, dato che si dovrebbe fare molta attenzione quando si eseguono script come root.

Raccomando vivamente di consultare il Cookbook Upstart collegato in generale per chiunque lavori con lavori Upstart.

    
risposta data Mark Russell 21.04.2011 - 02:52
110

Upstart registra l'esecuzione del servizio in un file di registro con lo stesso nome in /var/log/upstart/your-service-name.log . Dovrebbe essere utile.

    
risposta data Muhammad Gelbana 02.09.2012 - 17:32

Leggi altre domande sui tag