読み方 : ノーハップコマンド

nohupコマンド【no hang-up】

nohupコマンドとは?

LinuxなどのUNIX系OSで標準的に用いられるコマンドの一つで、ターミナル(仮想端末)を閉じたりログアウトした後も、指定したコマンドの実行を継続させるもの。主にリモートログインした環境で、長時間かかる処理をそのまま走らせ続けたい場合に利用される。
nohupコマンドのイメージ画像

Linuxなどのオペレーティングシステム(OS)では、ターミナルソフトを使ってサーバ遠隔ログインして操作するという使い方が一般的である。通常の動作では、端末を閉じたりセッションを切断すると、実行中のプロセスに「SIGHUP」(ハングアップシグナル)が送信され、プロセスは強制終了する。通信が途切れた場合も同様である。

nohupコマンドは、このSIGHUPを無視してプロセスを動作し続けさせる。使い方は「nohup コマンド名 &」のように、実行したいコマンドの前にnohupを付けるだけでよい。末尾の「&」はバックグラウンド実行の指定であり、nohupと組み合わせて使うのが一般的である。これにより、コマンド起動後に端末を閉じたりログアウトしたりしても、処理の完了を待つ必要がなくなる。

セッション終了後は標準出力の出力先が失われるため、nohupはコマンド標準出力および標準エラー出力ファイルに自動的にリダイレクトする。デフォルトではカレントディレクトリに「nohup.out」が作成され、書き込みができない場合はホームディレクトリに保存される。後から再度ログインしてこのファイルを参照することで、実行結果やエラーの内容を確認できる。出力先を変更したい場合は、「nohup コマンド名 > 出力ファイル名 2>&1 &」のようにリダイレクト演算子で任意のファイルを指定すればよい。

同様の目的を達成する手段として、「GNU Screen」や「tmux」といったターミナルマルチプレクサ、あるいはシェルのdisownコマンドなども使われている。常駐プロセス(デーモン)の管理にはsystemdの利用が推奨される場面も増えているが、nohupはほぼすべてのUNIX系環境に標準で備わっており、追加のソフトウェアなしに手軽に利用できるため、現在も様々な場面で活用されている。

主なLinuxコマンド

他の辞典等による「nohupコマンド」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。