13

supervisorctl tail特定のプロセスのログ情報はどこから取得しますか? 完全なログを取得するにはどうすればよいですか?

4

1 に答える 1

21

コマンド ライン ヘルプから ( supervisorctl help tail):

tail [-f] <name> [stdout|stderr] (デフォルトの stdout)
元:
tail -f <name> 名前付きプロセスの stdout の継続的な末尾
                        Ctrl-C で終了します。
tail -100 <name> プロセス stdout の最後の 100 *bytes*
tail <name> stderr last 1600 *bytes* of process stderr

したがって、デフォルトでは、tailコマンドはプロセスの stdout を追跡します。完全なログを取得する必要がある場合は、セクションのstdout_logfileオプションによって[program:x]保存場所が決まります。stderr_logfileオプションもあります。

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

したがって、stdout ログ全体にアクセスする場合は、少なくともchildlogdirオプションを固定ディレクトリに設定して、適切な一時ディレクトリを検索する必要がないようにする必要があります。

于 2012-07-09T09:56:18.360 に答える