nohupは自動的にstderrをstdoutにリダイレクトしますが、それを端末(進行状況が表示される場所)に送信したいと思います。どうすればいいですか?
ベストアンサー1
方向を変えてください。たとえば、stderrに1行、stdoutに1行を印刷する次のスクリプトを使用します。
#!/bin/sh
echo stderr >&2
echo stdout
今実行してnohup
標準エラーをファイルにリダイレクトすると、期待どおりに動作します。
$ nohup a.sh 2>er
$ cat er
nohup: ignoring input and appending output to ‘nohup.out’
stderr
nohup
をリダイレクトしているので、標準エラー自体も含まれていますnohup
。標準出力でも同じことができます。
nohup a.sh > foo
デフォルトでは、出力をリダイレクトしない場合にのみnohup
使用されます。nohup.out
標準エラーを端末に印刷するには、次を使用できます。プロセスリダイレクトstderrを介して渡されましたtee
:
$ nohup a.sh 2> >(tee)
nohup: ignoring input and appending output to ‘nohup.out’
stderr