nohup アプリケーションが次にリダイレクトされる場合:
nohup bash -c "printf \"command\n\"" &> /dev/null
ファイルnohup.out
は生成されませんが、コマンドを実行している端末でも出力は出ません。コマンドの端末出力を保存してもファイルを生成しない方法は何ですかnohup.out
?
答え1
この試み、
コンソールと nohup.out ファイルから合計を取得するSTDOUT
には、コマンドを実行する前に次のコマンドを実行します。STDERR
nohup
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
表示されたときとは生成されませんSTDOUT
。STDERR
上記の行をスクリプトに入れてバックグラウンドで実行します。
答え2
次のように実行できます。
nohup process & tail -f nohup.out
または使用ティー、これはあなたの要件を完全に満たすことができます。 標準入力から読み込み、標準出力とファイルへの書き込み
nohup process 1>&2 | tee nohup.out &