s6:服务未记录任何内容

s6:服务未记录任何内容

我正在尝试处理s6-log我编写的服务文件。服务文件如下所示:

#!/usr/local/bin/execlineb -P

/usr/local/bin/s6-setuidgid [username]

/usr/bin/[actual_service]

我还创造了[servicedir]/log/run,这只是

#!/usr/local/bin/execlineb -P

/usr/local/bin/s6-log T /var/log/[servicename]

启动后,s6-logger 正在运行,/var/log/[servicename]/current创建得很好,但它是空的。我甚至检查了服务是否正在写出内容以strace -p [supervisor pid] -f捕获启动消息……并且它工作正常,将内容写入文件描述符 2,即 stderr。

为什么这没有写入日志文件?

答案1

注意... 到文件描述符 2,即 stderr部分。

s6-supervise只会拾取写入 stdout 的日志。它将忽略 stderr,除非明确将其重定向到 stdout,例如通过添加

fdmove -c 2 1

到服务运行脚本。

相关内容