GNU Core Utilities/nohup
nohup
コマンドは、シェルセッションが終了してもコマンドを実行し続けるために使用されます。通常、シェルが終了すると、そのシェルで実行されているすべてのプロセスも終了しますが、nohup
を使用することで、シェルが終了しても指定したコマンドがバックグラウンドで実行され続けます。
nohup
コマンドは、IEEE Std 1003.2(「POSIX.2」)に準拠しています。
基本的な使い方
編集nohup コマンド [引数...]
主なオプション
編集主なオプション オプション 説明 --help
ヘルプメッセージの表示 --version
バージョン情報の表示
例
編集コマンドをバックグラウンドで実行する
編集nohup command &
command
をバックグラウンドで実行します。シェルが終了しても、command
は引き続き実行されます。
nohup の出力をファイルにリダイレクト
編集nohup command > output.log 2>&1 &
コマンドの標準出力と標準エラー出力を output.log
にリダイレクトし、バックグラウンドで実行します。
nohup コマンドの動作について
編集nohup
コマンドは、実行されたコマンドの出力を nohup.out
というファイルにリダイレクトします(ファイル名は変更可能)。これは、標準出力と標準エラー出力の両方がターミナルに表示されることを防ぐためです。もし nohup.out
が作成できない場合、コマンドの出力は指定したファイルにリダイレクトすることも可能です。
また、nohup
を使って実行されたコマンドは、シェルが終了した後も自動的にバックグラウンドで動作し続けます。このため、長時間実行されるプロセスを実行する場合に有効です。
その他の情報
編集nohup
は、バックグラウンドでコマンドを実行する際に便利なツールですが、デフォルトでプロセスがバックグラウンドで実行されるわけではないため、&
(アンパサンド)を使ってバックグラウンドで実行する必要があります。