nohupを使用してバックグラウンドで実行されるサードパーティのPythonスクリプトがあります。出力をファイルにパイプするのではなく、次のように出力をシステムログに追加したいと思います。記録計。これに加えて、優先順位 "user.error"と一般出力 "user.notice"を使用してエラー出力を記録する必要があります。これは、少なくともエラーがログに表示されることを保証します。
nohupなしで単純なコマンドを実行するとうまくいくようです。
ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag)
ただし、/ w nohupを実行すると予期しない結果が発生します。
nohup sh -c ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag) &
ログには「nohup:ignore input」が含まれ、時には空のエントリも含まれます。
誰かがこのコマンドを正しく書くのに役立ちますか?
答え1
nohup
出力をロガーにリダイレクトしています。 (またはPythonスクリプト)の出力をリダイレクトするには、ls
次のようにします。コマンドの置き換え:
nohup sh -c $(ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag)) &