nohup.outファイルを生成せずにターミナル出力を維持するにはどうすればよいですか?

nohup.outファイルを生成せずにターミナル出力を維持するにはどうすればよいですか?

nohup アプリケーションが次にリダイレクトされる場合:

nohup bash -c "printf \"command\n\"" &> /dev/null

ファイルnohup.outは生成されませんが、コマンドを実行している端末でも出力は出ません。コマンドの端末出力を保存してもファイルを生成しない方法は何ですかnohup.out

答え1

この試み、

コンソールと nohup.out ファイルから合計を取得するSTDOUTには、コマンドを実行する前に次のコマンドを実行します。STDERRnohup

exec >  >(awk '{ print $0; fflush();}' | tee -a nohup.out)
exec 2>  >(awk '{ print $0; fflush();}' | tee -a nohup.out >&2)
nohup bash -c "printf \"command\n\"" &

編集する:

nohup.outしたくない場合はこれを試してください

exec >  >(awk '{ print $0; fflush();}')
exec 2>  >(awk '{ print $0; fflush();}')
nohup bash -c "printf \"command\n\"" &

コンソールにnohup.out表示されたときとは生成されませんSTDOUTSTDERR

上記の行をスクリプトに入れてバックグラウンドで実行します。

答え2

次のように実行できます。

nohup process & tail -f nohup.out

または使用ティー、これはあなたの要件を完全に満たすことができます。 標準入力から読み込み、標準出力とファイルへの書き込み

nohup process 1>&2 | tee nohup.out &

関連情報