![为什么主管不记录子进程的输出?](https://linux22.com/image/201021/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%BB%E7%AE%A1%E4%B8%8D%E8%AE%B0%E5%BD%95%E5%AD%90%E8%BF%9B%E7%A8%8B%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%9F.png)
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