
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 |