nohupコマンドとnohup.out
nohupコマンドを使うと端末を閉じてもプロセスを続行できる。
$ nohup command &
このときnohup.outというファイルが作成され、標準出力と標準エラー出力がリダイレクトされる。
$ nohup ls -a &
nohup: ignoring input and appending output to 'nohup.out'
$ cat nohup.out
.
..
.bash_logout
.bash_profile
.bashrc
.cshrc
.lesshst
.ssh
.tcshrc
.viminfo
nohup.out
大量に出力される場合はnohup.outが肥大化してしまう場合や、実行コマンド自体がログを出力する場合など、必要がなければ作成しないようにしたい。
nohupコマンドでnohup.outを作成しない
nohupコマンドでnohup.outを作成しないようにするには標準出力と標準エラーを/dev/nullにリダイレクトする。
$ nohup command > /dev/null 2>&1 &
このようにするとnohup.outが作成されず、標準出力と標準エラー出力が捨てられる。
例
例として以下のようなシェルスクリプトで実験する。
echo foo > test.txt
上記スクリプトではtest.txtにfooという文字列を出力する。
このスクリプトをnohupコマンドで実行し、標準出力と標準エラー出力を/dev/nullにリダイレクトする。
$ nohup sh test.sh > /dev/null 2>&1 &
test.txtにはfooという文字列が出力されている。
$ cat test.txt
foo
nohup.outは作成されていない。
$ cat nohup.out
cat: nohup.out: No such file or directory
\第一線のプログラマーの行動原理を学べる!/
