リモート接続が切れてもプログラムの実行を続ける nohup

未来の自分へ。

リモート接続しているサーバー上でバッチジョブを実行する際に、

$ java -jar batch.jar &

と、ただジョブをバックグラウンド処理にするだけではssh接続が切れる or ログアウトするとジョブが終了してしまう。

nohupコマンドを使うと、ジョブをプロセスとして管理することができるので、ログアウト後も処理が続行する。

$ nohup java -jar batch.jar &

コマンドを実行したディレクトリに nohup.out ファイルが作成され、処理中に出力されたメッセージは全てnohup.out に書き込まれる。
nohup.outは追記型なので、同じプログラムを複数実行する場合(テスト中など)は、実行前にnohup.outを消す/移動させるなど対応しておいたほうがよい。

nohupを忘れて時間のかかる処理を実行すると、接続切れないから身動きが取れなくなる(経験談)ので注意する。


One comment:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です