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