2015-07-02 17 views
6

Tentativo di acquisire i registri della mia app con supervisore nella finestra mobile.Supervisord non mostra lo stdout dai processi

Ecco la mia supervisord.conf:

[supervisord] 
logfile=/dev/null 
nodaemon=true 

[program:autofs] 
command=automount -f 
redirect_stderr=true 
stdout_logfile=/dev/stdout 
stdout_logfile_maxbytes=0 

[program:split-pdf] 
command=bin/split-pdf-server 
directory=/root/split-pdf 
redirect_stderr=true 
stdout_logfile=/dev/stdout 
stdout_logfile_maxbytes=0 

Dopo aver avviato contenitore tutto funziona, e posso vedere il risultato della mia applicazione in esecuzione (crea file PDF su condivisione di rete)

Ma il registro mostra nessun output dalla mia app:

015-07-02 00:39:26,119 CRIT Supervisor running as root (no user in config file) 
2015-07-02 00:39:26,124 INFO supervisord started with pid 5 
2015-07-02 00:39:27,127 INFO spawned: 'split-pdf' with pid 8 
2015-07-02 00:39:27,130 INFO spawned: 'autofs' with pid 9 
2015-07-02 00:39:28,132 INFO success: split-pdf entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2015-07-02 00:39:28,132 INFO success: autofs entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 

Questo è l'unico output che vedo quando si collega al contenitore di finestra mobile.

Sono su Ubuntu 15.04 finestra mobile 1.7.0

Questo non è un duplicato di this question, perché io corro più di un processo in un contenitore.

+0

puoi provare a modificare stdout_logfile =/tmp/autofs.log e stdout_logfile =/tmp/split-pdf.log e ricostruire/riavviare, solo per il test? – user2915097

risposta

2

Si scopre che tutto funziona, ma con un certo ritardo. Quando ho provato a creare un contenitore per un'altra app che produce molti più messaggi di registro, i messaggi hanno iniziato a comparire nel file di registro, ma con un ritardo.

La prima app con cui eseguivo il test aveva solo 2 righe per attività nel registro e credo che ci sia un tipo di buffer che deve essere riempito prima che inizi a fluire nel file di registro.

+0

Ho lo stesso problema; richiede esattamente 4096 byte di dati di registro finché non vengono visualizzati. – cweiske

0

Questo ha a che fare con il buffer di pipe.

sono stato in grado di aggirare il problema eseguendo Python in unbuffered mode:

$ docker run -e PYTHONUNBUFFERED=1 imagename 

Vedi supervisor-stdout issue #10 per una discussione su questo.

Problemi correlati