デフォルトではを書いてnohup
閉じます。私は逆にこう言いたい。stdout
nohup.out
stderr
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がリダイレクトされると自動的に動作し、正常に動作し、上記のように動作します。