我正在尝试让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记录器正在运行,/var/log/[servicename]/current被很好地创建,但是它是空的。我甚至检查了服务是否正在用strace -p [supervisor pid] -f写东西来捕捉甚至是启动消息..。它起作用,将东西写入文件描述符2,即stderr。
为什么没有将它写入日志文件?
发布于 2019-11-03 18:53:56
注意..。文件描述符2,这是stderr部件。
s6-supervise只会获取写入标准输出的日志。它将忽略stderr,除非显式地重定向到stdout,例如通过添加
fdmove -c 2 1
到服务运行脚本。
https://serverfault.com/questions/990418
复制相似问题