为什么主管不记录子进程的输出?

为什么主管不记录子进程的输出?

server.sh当我在终端中运行脚本(运行地震专用服务器)时,它将创建初始化输出,例如

------- Game Initialization -------
gamename: baseqz
gamedate: May 25 2016
initializing access list...
loaded 0 steam ids into the access list
Not logging to disk.
0 teams with 0 entities
21 items registered

当有人连接到服务器时,这个脚本将输出类似的内容Person xyz has connected

我希望主管来管理这个服务器.sh脚本,但主管不会输出任何类型的初始化消息或连接消息(如果有人连接)。 Stdout 和 stderr 都会被记录。为什么主管不记录输出服务器.sh

这是我的主管配置文件

[program:prog]
command=/home/user/.steam/steamapps/common/qlds/server.sh
stdout_logfile=stdout.txt
stderr_logfile=stdout.txt

[supervisord]
nodaemon=true

[supervisorctl]
serverurl=http://127.0.0.1:9001

[inet_http_server]
port=127.0.0.1:9001

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

编辑:我注意到 server.sh 的奇怪行为

server.sh &> out.txt

在 out.txt 中不生成任何输出(没有游戏初始化,nothink)。但只有在我输入标准输入“退出”(server.sh 现在退出)之后,游戏初始化等才会写入文件 out.txt

答案1

尝试标准日志文件的完整路径并确保权限设置正确。

stdout_logfile=/abc/stdout.txt
stderr_logfile=/abc/stdout.txt

相关内容