2012-07-09 9 views
5

Da dove viene il supervisorctl tail le informazioni di registro di un determinato processo? Come posso ottenere un registro completo?Come funziona `supervisorctl tail`, per un dato processo?

+1

Questa è una domanda abbastanza "vera"; l'OP sta parlando del comando 'supervisorctl tail' e di come si riferisce ai processi gestiti da' supervisord'. –

risposta

11

Dalla riga di comando help (supervisorctl help tail):

 
tail [-f] <name> [stdout|stderr] (default stdout) 
Ex: 
tail -f <name>   Continuous tail of named process stdout 
         Ctrl-C to exit. 
tail -100 <name>  last 100 *bytes* of process stdout 
tail <name> stderr  last 1600 *bytes* of process stderr 

Quindi per impostazione predefinita, il comando tail code lo stdout processo. Se è necessario ottenere il registro completo, lo stdout_logfile option of the [program:x] section determina dove viene memorizzato; c'è anche l'opzione stderr_logfile.

Se l'opzione non è impostata o impostata su AUTO, verrà creato un file di registro all'avvio del processo, ma ripulito al riavvio di supervisord. Questo file viene creato nella directory impostata da the [supervisord]childlogdir option (che è la tua piattaforma TMP directory per impostazione predefinita) e ha un nome file generato del modulo <program-name>-<stdout|stderr>---<supervisor-identifier>-<6-random-characters>.log, ad es. varnish-stdout---supervisor-AqY52e.log.

Pertanto, se si desidera accedere all'intero registro stdout, è necessario come minimo impostare l'opzione childlogdir su una directory fissa per evitare di dover cercare la directory temporanea corretta.

+0

Grazie mille: 3 – okuznetsov

+0

Ottima risposta! Ho appena risolto il mio problema. – shellbye

Problemi correlati