監督者が子プロセスの出力を記録しないのはなぜですか?

監督者が子プロセスの出力を記録しないのはなぜですか?

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)。ただし、stdinに「exit」と入力した後にのみ(server.shが終了します)、ゲームの初期化などがout.txtファイルに書き込まれます。

ベストアンサー1

標準ログファイルのフルパスを試して、権限が正しく設定されていることを確認してください。

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

おすすめ記事