Nohup:stderrをファイルにリダイレクトし、stdoutを閉じます。

Nohup:stderrをファイルにリダイレクトし、stdoutを閉じます。

デフォルトではを書いてnohup閉じます。私は逆にこう言いたい。stdoutnohup.outstderr

stderrファイルに書き込みますstdout

答え1

次のことができます。

nohup command 2>&1 >/dev/null &

最初のリダイレクトはSTDERRで現在のSTDOUTハンドラとして書かれているのでnohup.out。その後、STDOUTリダイレクトされました。NULL

答え2

標準エラーを目的のファイルにリダイレクトするだけです。

$ ls
test.sh
$ cat test.sh
#!/bin/bash
echo "out"
echo "error" 1>&2
$ ./test.sh
out
error
$ nohup ./test.sh < /dev/null > /dev/null 2> err.out
$ ls
err.out  test.sh
$ cat err.out
error

マニュアルから:

標準入力が端末の場合は、読み取れないファイルにリダイレクトします。標準出力が端末の場合は、可能であればnohup.out出力を端末に追加し、$HOME/nohup.outそれ以外の場合は出力を追加します。標準エラーが端末の場合は標準出力にリダイレクトします。出力をFILEに保存するにはnohup COMMAND > FILE

stderrがリダイレクトされると自動的に動作し、正常に動作し、上記のように動作します。

関連情報