Come ottenere output dai lavori di avvio quando si accede tramite SSH?


10

Per monitorare cosa stanno facendo le definizioni dei miei lavori, vorrei vedere l'output del testo dai lavori. Ciò non sembra possibile quando accedo tramite SSH.

Sto riscontrando questo problema con Natty 11.04, ma sono convinto che sia più comune.

Un semplice file di lavoro che utilizzo (nome file /etc/init/test.conf):

description "test"
start on test
console owner
kill timeout 5
task
script
  /bin/echo Gotcha...
end script

Il mio obiettivo è vedere il testo "Gotcha ..." quando si fa initctl emit testo initctl start test. Ma questo non funziona.

Quello che ho provato finora:

  • "output console" anziché "proprietario console"
  • "exec / bin / echo Gotcha ..." invece dello script ... end script

Risposte:


8

Poiché init (pid 1) sta eseguendo il servizio (che non ha stdout / stderr) e non la tua shell (come con gli /etc/init.dscript più vecchi ), al momento non c'è modo di vedere l'output che viene generato. (Questa funzione è spesso richiesta ed è nell'elenco delle cose da fare per Upstart.)

Per ovviare a questo, consiglio di forzare il reindirizzamento dell'output all'inizio del lavoro stesso:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script

16

A partire dal 12.04 (possibilmente prima), per impostazione predefinita, upstart accederà a un file in / var / log / upstart / con qualsiasi output dal lavoro

Documentazione attuale di Upstart (sul ricettario)

Puoi quindi adattare quel file per vedere tutto il nuovo testo che viene scritto nel file

Per esempio:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.