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
\第一線のプログラマーの行動原理を学べる!/