nohup コマンド
目的
コマンドをハングアップせずに実行します。
構文
nohup { -p pid | Command [ Arg ... ] [ & ] }
説明
nohup コマンドは、Command パラメーターおよび関連する Arg パラメーターで 指定されたコマンドを、すべてのハングアップ (SIGHUP) シグナルを無視して実行するか、 またはすべてのハングアップ (SIGHUP) シグナルを無視する -p オプションを 使用して指定されたプロセスを変更します。
nohup コマンドは、ログオフ後にバックグラウンドでプログラムを実行するために
使用することもできます。nohup コマンドをバックグラウンドで
実行するには、& (アンパーサンド) をコマンドの終わりに追加します。
注: -p pid と Command を一緒に指定することはできません。
-p pid が使用される場合、指定されたプロセスの出力は nohup.out には
リダイレクトされません。
フラグ
項目 | 説明 |
---|---|
-p pid | pid は、実行中のプロセスのプロセス ID です。 nohup コマンドは指定されたプロセスを変更し、すべてのハングアップ (SIGHUP) シグナルを 無視するようにします。 |
終了状況
このコマンドは、以下の終了値を戻します。
項目 | 説明 |
---|---|
126 | Command パラメーターで指定されたコマンドを検出しましたが、呼び出すことができませんでした。 |
127 | nohup コマンドまたは Command パラメーターで指定されたコマンドで発生したエラーを検出できませんでした。 |
それ以外の場合には、 nohup コマンドの終了状況は、 Command パラメーターで指定されたコマンドの終了状況になります。
例
- ログアウト後にコマンドをバックグラウンドで実行するには、次のように入力します。
このコマンドを入力すると、次のように表示されます。$ nohup find / -print &
プロセス ID 番号は、& (アンパーサンド) によって始動されるバックグラウンド・プロセスのプロセス ID 番号に変わります。 メッセージ「Sending output to nohup.out」は、 find / -print コマンドからの出力が nohup.out ファイルに入っていることを示します。これらのメッセージが表示されたあとは、まだ find コマンドを実行中でもログアウトすることができます。670 $ Sending output to nohup.out
- コマンドをバックグラウンドで実行し、標準出力を異なるファイルにリダイレクトするには、
次のように入力します。
この例では、find / -print コマンドが実行され、その出力がファイル filenames に格納されます。プロセス ID とプロンプトのみが次のように表示されます。$ nohup find / -print >filenames &
nohup コマンドが Command パラメーターで指定されたコマンドを始動するのには時間がかかるので、 ログアウトする前に少し待ってください。 早くログアウトしすぎると、Command パラメーターで指定したコマンドが実行されないことがあります。 Command パラメーターで指定したコマンドが始動されたら、ログアウトしても影響はありません。677 $
- 複数のコマンドを実行するにはシェル・プロシージャーを使います。例えば、次のようにシェル・プロシージャーを書いて
nnfmath1 ファイルと命名します。この場合、次のコマンドを使うと、nnfmath1 ファイル内のすべてのコマンドに nohup コマンドを実行できます。neqn math1 | nroff > fmath1
nohup sh nnfmath1
- 実行許可を nnfmath1 ファイルに割り当てる場合、
次のコマンドを発行すると、同じ結果を得ることができます。
nohup nnfmath1
- nnfmath1 ファイルをバックグラウンドで実行するには、
次のように入力します。
nohup nnfmath1
& - nnfmath1 ファイルを Korn シェルで実行するには、
次のように入力します。
nohup ksh nnfmath1
- 実行中のプロセスにすべてのハングアップ・シグナルを無視させるには、
次のように入力します。
nohup -p 161792