名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 警告 | 注意事項
/usr/bin/nohup command [argument]...
/usr/bin/nohup -p [-Fa] pid [pid]...
/usr/bin/nohup -g [-Fa] gpid [gpid]...
/usr/xpg4/bin/nohup command [argument]...
nohup ユーティリティーは、 command で示すコマンドを、指定された引数とともに呼び出します。command が呼び出されたとき、 nohup は、そのプロセスが SIGHUP シグナルを無視するように設定します。
-p または -g フラグを指定して実行すると、 nohup は、プロセス ID またはグループ ID のリストで指定された実行中のプロセスが、ハングアップおよび停止の影響を受けないように設定します。
command の実行に時間がかかることがわかっており、ユーザーが端末からログアウトする場合は、nohup ユーティリティーを使うと便利です。シェルが 終了するときに、システムはその子プロセスに SIGHUP シグナルを送信します。それにより、デフォルト では子プロセスが終了します。停止、実行中、バックグラウンドにある すべてのジョブは、その呼び出しが nohup コマンドによるものだった場合、 もしくはプロセスがプログラム上 SIGHUP を無視するように選択されていた場合、 SIGHUP を無視して続行します。
/usr/bin/nohup によって実行されるプロセスは、 SIGHUP ( ハングアップ ) および SIGQUIT ( 中止 ) シグナルを受け付けません。
ID で指定したプロセスは、SIGHUP (ハングアップ) および SIGQUIT (中止) シグナルを受け付けません。また、制御端末への出力は、すべて nohup.out にリダイレクトされます。-F を指定すると、nohup は、各プロセスに制御を強制します。-a を指定すると、プロセスが SIGHUP ( ハングアップ ) および SIGQUIT ( 中止 ) シグナルのどちらかに対してハンドラをインストールした場合でも、これらのシグナル設定を変更します。
ID で指定したプロセスと同じグループに属するすべてのプロセスは、SIGHUP (ハングアップ) および SIGQUIT (中止) シグナルを受け付けません。また、制御端末への出力は、すべて nohup.out にリダイレクトされます。-F を指定すると、nohup は、各プロセスに制御を強制します。-a を指定すると、プロセスが SIGHUP ( ハングアップ ) および SIGQUIT ( 中止 ) シグナルのどちらかに対してハンドラをインストールした場合でも、これらのシグナル設定を変更します。
/usr/xpg4/bin/nohup によって実行されるプロセスは、 SIGHUP シグナルを受け付けません。
nohup ユーティリティーは、プロセスに対し SIGTERM ( 終了 ) シグナルを受け付けないようには設定しないので、 プロセス自身があるいはシェルがそのように設定しないかぎり、プロセスは SIGTERM シグナルを受信します。
nohup.out が現在のディレクトリに書き込み可能でない場合、 $HOME/nohup.out に出力先が変更 ( リダイレクト ) されます。ファイルが作成された場合、そのファイルは読み取り権と書き込み権 (600) を持ちます。chmod(1) を参照してください。標準エラーは、端末の場合出力先を標準出力に変更され、 その他の場合は変更されません。nohup が実行するプロセスの優先度は変更されません。
次のオプションを指定できます。
どのような場合でも、対象プロセスの設定を変更します。このオプションは、-p または -g と一緒に使用した場合にのみ有効です。
強制。別のプロセスが制御していても、対象のプロセスを捕捉します。このオプションは、-p または -g と一緒に使用した場合にのみ有効です。
リストしたプロセスグループに対して処理を実行します。-p オプションと同時には使用できません。
リストしたプロセスに対して処理を実行します。-g オプションと同時には使用できません。
次のオペランドを指定できます。
nohup -p が使用する、10 進数のプロセス ID。
nohup -g が使用する、10 進数のプロセスグループ ID。
呼び出すコマンドの名前。command オペランドに特殊な shell_builtins(1) ユーティリティーのいずれかの名前を指定した場合、その結果は未定義となります。
command オペランドのコマンドを呼び出す際に引数として与える文字列。
-F フラグを使用する場合は注意が必要です。1 つの犠牲プロセスに 2 つの制御プロセスを強要すると、混乱を引き起こす可能性があります。第一制御プロセス (通常は、デバッガ) が犠牲プロセスを停止していて、かつその proc ツールの使用時に第一制御プロセスが何も行わない場合にのみ安全が保証されます。
nohup をパイプラインまたはコマンドのリストに 適用した方が望ましい場合がよくあります。これは、シェルスクリプトと呼ばれる、 パイプラインおよびコマンドリストを 単一のファイルに格納する方法でしか実現されません。そうすれば、次を実行できます。
example$ nohup sh file |
これで、 nohup は file 内のすべてに適用されます。file というシェルスクリプトを頻繁に実行する予定の場合、 file 実行権を指定すれば、 sh の入力が少なくて済みます。
アンパサンド ` & ' を追加すると、 file の内容がバックグラウンドで実行され、割り込みも無視されます (sh(1) 参照 ) 。
example$ nohup file & |
example$ long_running_command & example$ nohup -p `pgrep long_running_command` |
example$ make & example$ ps -o sid -p $$ SID 81079 example$ nohup -g `pgrep -s 81079 make` |
nohup の実行に影響を与える次の環境変数についての詳細は、 environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、NLSPATH、および PATH。
ユーザーのホームディレクトリのパス名を定義します。出力ファイル nohup.out を現在のディレクトリ内に作成できない場合、nohup コマンドは HOME で指定したディレクトリにファイルを作成します。
次の終了ステータスが返されます。
コマンドは見つかったが呼び出すことができなかった。
nohup 中でエラーが発生した、または command で示すコマンドが見つからなかった。
それ以外の場合、 command オペランドの終了ステータスが nohup の終了ステータスになります。
標準出力が端末で現在のディレクトリが書き込み可能な場合に、 nohup 実行 ( 結果 ) の出力用に使われるファイル
標準出力が端末で現在のディレクトリが書き込み可能でない場合に、 nohup 実行 ( 結果 ) の出力用に使われるファイル
次の属性については、attributes(5) のマニュアルページを参照してください。
batch(1), chmod(1), csh(1), ksh(1), nice(1), pgrep(1), proc(1), ps(1), sh(1), shell_builtins(1), signal(3C), proc(4), attributes(5), environ(5), standards(5)
ログインシェルとして Korn シェル (ksh(1)) を実行しており、かつ nohup された実行中のジョブがある場合、ログアウトを試みると、次のような警告メッセージが表示されます。
You have jobs running. |
ログアウトを有効にするために ログアウトを 2 回行う必要があります。バックグラウンドジョブは実行し続けます。
nohup という C シェル (csh(1)) 組み込みコマンドは、終了シグナル SIGHUP の影響が及ばないようにします。 しかし、出力先を nohup.out に変更しません。csh (1) を使用すると、 `&' で実行するコマンドは、バックグラウンドにいる間は、自動的に HUP シグナルの影響を受けなくなります。
nohup は、コマンドシーケンスを認識しません。次のコマンドを見てください。
example$ nohup command1; command2 |
このコマンドでは、nohup ユーティリティーが適用するのは command1 だけです。次のコマンドを見てください。
example$ nohup (command1; command2) |
このコマンドは構文的に正しくありません。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 警告 | 注意事項