[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

23.4 nohup: ハングアップ・シグナルで終了しないコマンドを実行する

nohup を使って、command を実行すると、 指定されたコマンドがハングアップ・シグナルを無視するようになる。 従って、そのコマンドは、ユーザがログアウトした後でも、バックグラウンドで実行を継続することができる。

書式:

 
nohup command [arg]…

標準入力が端末の場合は、nohup から実行されているコマンドが端末を使用していると、端末で行われるセッションが誤解しないように、 標準入力をリダイレクトする。 さらに、標準入力の代わりになるファイルのファイル・ディスクリプタを読み込み不可にする。 nohup から実行されているコマンドが、誤って標準入力から読み込を行おうとした場合に、 エラーメッセージを出すことができるようにするためである。 このリダイレクションは GNU の拡張である。 GNU 以外のホストでも使うことを考えているプログラムでは、GNU の拡張を当てにせず、 ‘nohup command [arg]… 0>/dev/null’ を使えばよい。

標準出力が端末の場合、コマンドの標準出力は、(訳注: カレントディレクトリの) ‘nohup.out’ というファイルに追加されて行く。 そのファイルに書き込めない場合は、‘$HOME/nohup.out’ に追記されることになる。そのファイルにも書き込めない場合は、コマンドの実行が行われない。 nohup によって作成されるのが ‘nohup.out’ であれ、 ‘$HOME/nohup.out’ であれ、それは、ファイルの所有者にのみ読み書き可能なものになる。 現在の umask の設定の影響は受けない。

標準エラーが端末の場合、コマンドの標準エラー出力は、基本的には標準出力 (リダイレクトされているかもしれない) と同じファイル・ディスクリプタにリダイレクトされる。 ただし、標準出力がクローズされている場合には、標準エラーの端末への出力は、 リダイレクトされることなく、直接 ‘nohup.out’ や ‘$HOME/nohup.out’ というファイルに追加される。どちらのファイルが使用されるかは、上述のとおりである。

コマンドの出力を ‘nohup.out’ 以外のファイルに書き込みたければ、 リダイレクトすればよい。たとえば、make の出力を ‘make.log’ に書き込みたかったら、次のようにする。

 
nohup make > make.log

nohup は、実行するコマンドを自動的にバックグラウンドに送ることをしない。 そこで、ユーザは、コマンドラインの末尾に ‘&’ を付けることで、 明示的にそれを行わなければならない。また、nohup は、command の niceness を変更しない。niceness を変更したかったら、nice を使って、‘nohup nice command’ のように実行すればよい。

command は、シェルの組み込みコマンドであってはならない (see section 特殊ビルトイン・ユーティリティ)。

指定できるオプションは、‘--help’ と ‘--version’ だけである。 See section 共通オプション. オプションはオペランドの前に置かなければならない。

終了ステータス:

 
125: POSIXLY_CORRECT が設定されていない場合に、nohup そのものの
      実行に失敗した。
126: command は見つかったが、起動できなかった。
127: command が見つからなかった。 
それ以外の場合は、command の終了ステータス。

POSIXLY_CORRECT が設定されている場合は、nohup そのものが実行に失敗したときの終了ステータスは、125 ではなく 127 になる。


This document was generated on June 7, 2022 using texi2html 1.82.