未来の自分へ。
リモート接続しているサーバー上でバッチジョブを実行する際に、
$ java -jar batch.jar &
と、ただジョブをバックグラウンド処理にするだけではssh接続が切れる or ログアウトするとジョブが終了してしまう。
nohupコマンドを使うと、ジョブをプロセスとして管理することができるので、ログアウト後も処理が続行する。
$ nohup java -jar batch.jar &
コマンドを実行したディレクトリに nohup.out ファイルが作成され、処理中に出力されたメッセージは全てnohup.out に書き込まれる。
nohup.outは追記型なので、同じプログラムを複数実行する場合(テスト中など)は、実行前にnohup.outを消す/移動させるなど対応しておいたほうがよい。
nohupを忘れて時間のかかる処理を実行すると、接続切れないから身動きが取れなくなる(経験談)ので注意する。
One comment: