supervisorctl tail
命令从哪里获取某个进程的日志信息?如何获取完整的日志?
supervisorctl tail
命令从哪里获取某个进程的日志信息?如何获取完整的日志?
从命令行帮助 (supervisorctl help tail
):
tail [-f] <name> [stdout|stderr] (默认 stdout) 例如: tail -f <name> 持续输出名为 <name> 的进程的标准输出,按 Ctrl-C 退出。 tail -100 <name> 输出名为 <name> 进程最后 100 个字节的标准输出 tail <name> stderr 输出名为 <name> 进程最后 1600 个字节的标准错误输出
因此,默认情况下,tail
命令输出进程的标准输出。如果你需要获取完整的日志,则需要使用 [program:x]
部分中的 stdout_logfile
选项 来确定存储位置;还有一个 stderr_logfile
选项。
如果未设置该选项或将其设置为 AUTO
,则在进程启动时将创建一个日志文件,但每次 supervisord 重启时都会清除。这个文件将在由 [supervisord]
childlogdir
选项 设置的目录中创建(默认为平台的 TMP
目录),并具有类似于 <program-name>-<stdout|stderr>---<supervisor-identifier>-<6-random-characters>.log
的生成文件名,例如 varnish-stdout---supervisor-AqY52e.log
。
因此,如果您想要访问完整的标准输出日志,则至少需要将 childlogdir
选项设置为固定的目录,以免不得不搜索正确的临时目录。