私は現在、runuserを使用してPythonファイルを実行し、出力をファイルにリダイレクトしています。これはコマンドです:
runuser -l "user" -c "/path/python-script.py parameter1 > /path/file.log &"
これはPythonスクリプトを正しく実行しますが、空のログファイルを作成します。リダイレクトなしで実行した場合:
runuser -l "user" -c "/path/python-script.py parameter1 &"
Pythonスクリプトを正しく実行し、Pythonスクリプトからのすべての出力を作成して画面をフローさせます。Pythonスクリプトからの出力は、stdoutに出力するprintを使用して行われます。
Pythonスクリプトからの出力がファイルにダンプされない理由がわかりません。ファイルのアクセス許可は正しいです。ログファイルは作成されますが、入力されません。
しかし、「parameter1」を削除すると、Pythonスクリプトによって報告されたエラーメッセージがログファイルに正しくダンプされます。
runuser -l "user" -c "/path/python-script.py > /path/file.log &"
エラーメッセージもprintで処理されるので、1つのメッセージがダンプされ、他のメッセージがダンプされない理由がわかりません。
たぶん、runuserは「parameter1」をコマンドか何かとして解釈します。ただし、psで確認できるように、パラメーターはスクリプトに正しく渡されます。
/usr/bin/python /path/python-script.py connect
2>&1を追加しようとしましたが、まだ機能しません。
何か案が ?