nohupとは?意味をわかりやすく簡単に解説

nohupとは?意味をわかりやすく簡単に解説

nohupとは

nohupは、Unix系のオペレーティングシステムで使用されるコマンドです。バックグラウンドでプロセスを実行し、ユーザーがログアウトした後もプロセスが実行を継続できるようにします。nohupコマンドを使用することで、ターミナルを閉じてもプログラムが停止しないため、長時間の処理やサーバーでの実行に非常に役立ちます。

nohupは、コマンドの実行時に標準出力と標準エラー出力をファイルにリダイレクトします。これにより、ターミナルに何も表示されなくても、プログラムの実行状況を後から確認できます。デフォルトでは、nohup.outというファイルにリダイレクトされますが、リダイレクト先を自分で指定することも可能です。

nohupコマンドは、システム管理者や開発者にとって不可欠なツールです。例えば、サーバー上で長時間実行されるバッチ処理や、Webサーバーの起動などをnohupで行うことで、安定したシステム運用を実現できます。nohupを使用することで、予期せぬターミナルの切断によるプログラム停止を防ぎ、システムの可用性を高めることが可能です。

nohupの活用

「nohupの活用」に関して、以下を解説していきます。

  • nohupの基本的な使い方
  • nohup実行後のプロセス管理

nohupの基本的な使い方

nohupコマンドは、コマンドの前にnohupを付加するだけで簡単に使用できます。例えば、「nohup ./my_script.sh &」のように実行することで、my_script.shというシェルスクリプトをバックグラウンドで実行し、ログアウト後も実行を継続させることが可能です。&は、コマンドをバックグラウンドで実行するための記号です。

nohupコマンド実行時には、標準出力と標準エラー出力のリダイレクト先を指定することもできます。例えば、「nohup ./my_script.sh > my_output.log 2>&1 &」のように実行することで、標準出力をmy_output.logに、標準エラー出力を標準出力と同じ場所(つまりmy_output.log)にリダイレクトできます。これにより、プログラムの実行結果を詳細に記録し、後から確認することが可能です。

オプション説明使用例
&バックグラウンド実行nohup ./run.sh &
> file標準出力リダイレクトnohup ./run.sh > output.log &
2>&1標準エラー出力リダイレクトnohup ./run.sh > output.log 2>&1 &
–helpヘルプ表示nohup –help

nohup実行後のプロセス管理

nohupで実行したプロセスは、psコマンドやtopコマンドで確認できます。psコマンドを使用すると、現在実行中のプロセスの一覧が表示され、その中にnohupで起動したプロセスが含まれているかを確認できます。topコマンドを使用すると、リアルタイムでプロセスのCPU使用率やメモリ使用量などを監視できます。

nohupで実行したプロセスを停止するには、killコマンドを使用します。まず、psコマンドでプロセスのプロセスID(PID)を確認し、killコマンドにそのPIDを指定することで、プロセスを停止できます。例えば、「kill 12345」のように実行することで、PIDが12345のプロセスを停止できます。プロセスが停止しない場合は、kill -9 12345のように、強制終了オプションを使用することも可能です。

コマンド説明使用例
ps auxプロセス一覧表示ps aux | grep my_script.sh
topリアルタイム監視top
kill PIDプロセス停止kill 12345
kill -9 PID強制停止kill -9 12345

関連タグ