未来の自分へ。

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

$ java -jar batch.jar &

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

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

$ nohup java -jar batch.jar &

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

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


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

  1. [...] この前覚えたnohup。これでログは外部ファイルに記録されるはず。 [...]

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2012 寺子屋未満 Suffusion theme by Sayontan Sinha