`supervisorctl tail` 如何为给定的进程工作?

16

supervisorctl tail 命令从哪里获取某个进程的日志信息?如何获取完整的日志?

1个回答

25

从命令行帮助 (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 选项设置为固定的目录,以免不得不搜索正确的临时目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接