パラメータとファイルリダイレクトを含む組み込みUnixコマンドでnohupを使用する

パラメータとファイルリダイレクトを含む組み込みUnixコマンドでnohupを使用する

次のコマンドを実行したいと思います。

tail -f mylog.log > snippet.log

シェルタイムアウトやその他の問題を心配することなくバックグラウンドで実行したいと思います。

警告とエラーが発生します。

nohup tail -f mylog.log > snippet.log & > nohup2.out (or dev null)

正しいコマンドは何ですか?

答え1

あなたのコードが理解されていません。

stdin および stderr チャネルをリダイレクトするには、次のようにします。

nohup tail -f mylog.log > ./messages.log 2> ./errors.out

すべてのメッセージを1つのファイルに移動するには、次のものを使用できます。

nohup tail -f mylog.log > all_messages.txt 2>&1

メッセージをコピーするには、次のものを使用できます。

nohup tail -f mylog.log | tee messages1 messages2 ...

答え2

nohup自体からnohup2.outにメッセージを取得しようとしているようですが、&asyncはコマンド全体を終了し、最終リダイレクトではファイルを消去します。

これはうまくいくようです。もともとシェルを閉じてkill -HUPとkill -INTを試しましたが、どちらも生き残りました。

nohup >nohup2.out 2>&1 bash -c 'tail -f mylog.log > snippet.log' &

関連情報