名前 | 形式 | 機能説明 | オプション | オペランド | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 警告 | 注意事項
nohup ユーティリティは、 command で示すコマンドを、指定された引数とともに呼び出します。 command が呼び出されたとき、 nohup は、そのプロセスが SIGHUP
シグナルを無視するように設定します。
-p または -g フラグを指定して実行すると、 nohup は、プロセス ID またはグループ ID のリストで指定された実行中のプロセスが、ハングアップおよび停止の影響を受けないように設定します。
指定したコマンドが実行に時間を要する場合、 ユーザーがコマンド終了前にログアウトしたい場合は、 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。
呼び出すコマンドの名前。このオペランドに shell_builtins(1) ユーティリティを指定した場合の処理結果は定義されていません。
command オペランドのコマンドを呼び出す際に引数として与える文字列。
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 の実行に影響を与える環境変数 LC_CTYPE 、 LC_MESSAGES 、 PATH 、 NLSPATH についての詳細は、 environ(5) を参照してください。
ユーザーのホームディレクトリのパス名を定義します。 出力ファイル nohup.out が現在のディレクトリ内に生成できない場合、 nohup コマンドは HOME が示すディレクトリを使ってファイルを作成します。
以下の終了ステータスが返されます。
command で示すコマンドユーティリティは 見つかったが呼び出すことができなかった。
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), XPG4(5)
ログアウトをしようといた時に ログインシェルとして Korn シェル (ksh(1)) を実行し、 nohup されたジョブを実行していた場合、 次のような警告メッセージが表示されます。
You have jobs running.
ログアウトを有効にするために ログアウトを 2 回行う必要があります。 バックグラウンドジョブは実行し続けます。
nohup という C シェル (csh(1)) 組み込みコマンドは、終了シグナル SIGHUP
の影響が及ばないようにします。 しかし、出力先を nohup.out に変更しません。 csh (1) を使用すると、 `&' で実行するコマンドは、バックグラウンドにいる間は、自動的に HUP シグナルの影響を受けなくなります。
nohup は、コマンドシーケンスを認識しません。 以下のコマンドの例では、 nohup ユーティリティが適用するのは command1 だけです。
example$ nohup command1; command2 |
以下のコマンドは構文的に正しくありません。
example$ nohup (command1; command2) |
名前 | 形式 | 機能説明 | オプション | オペランド | 使用例 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 警告 | 注意事項