2012-07-09 3 views
5

supervisorctl tailは、特定のプロセスのログ情報をどこから取得しますか?フルログを取得するにはどうすればよいですか?コマンドラインヘルプ(supervisorctl help tail)から与えられたプロセスに対して `supervisorctl tail`はどのように機能しますか?

+1

これは十分な質問です。 OPは 'supervisorctl tail'コマンドと' supervisord'によって管理されるプロセスとの関係について話しています。 –

答えて

11

 
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 

ので、デフォルトでは、tailコマンドは、プロセスの標準出力をテール。完全なログを取得する必要がある場合は、stdout_logfile option of the [program:x] sectionが格納されている場所を判別します。同様にstderr_logfileオプションがあります。

このオプションが設定されていないか、またはAUTOに設定されている場合、プロセスが開始されるとログファイルが作成されますが、スーパーバイザが再起動するたびにクリーンアップされます。このファイルはthe [supervisord]childlogdir option(デフォルトではあなたのプラットフォームのTMP directoryです)に設定されたディレクトリに作成され、生成されたファイル名は<program-name>-<stdout|stderr>---<supervisor-identifier>-<6-random-characters>.logです。 varnish-stdout---supervisor-AqY52e.log

このように、stdoutログ全体にアクセスするには、固定ディレクトリにchildlogdirオプションを設定する必要があります。これにより、正しい一時ディレクトリを検索する必要がなくなります。

+0

ありがとうございました:3 – okuznetsov

+0

偉大な答え!ちょうど私の問題を修正。 – shellbye