Copy & Paste Engineer

【Linux】接続を切っても処理を継続させる「nohup」

【Linux】接続を切っても処理を継続させる方法

Linuxに接続している状態でコマンド実行した際にネットワークなど何らかの理由で切られる危険性があり、対策として nohup を使用して接続が切られても処理を継続させる方法を取りました。 ターミナルと閉じたり接続が切れると実行していた処理が中断されます。 なので帰りたいけど帰れない そのためLinux上で数時間以上掛かる処理ならこれを使用するのが得策です。

nohup の使い方

nohup [command] &

nohupを使ってみる

以下のコマンドを使用すると100秒間 sleep されます。 一度ターミナルの接続を切ってからも生きている事を確認できます。

nohup sleep 100 &

複数のコマンドを実行する

複数コマンドを実行して nohup.out に開始と終了の時刻を追加してみます。 これでわざわざ実行中に接続しなくてもプロセスが実行終了したことを確認出来ます。

nohup sh -c 'echo "start nohup `date`" && sleep 100 && echo "end nohup `date`"' &

nohup のログ

nohup のログは nohup.out に吐かれて困るのでログを指定します。 標準出力は nohup.log、エラー出力は error.log に出力するようにします。

nohup sh -c 'echo "start nohup `date`" && sleep 100 && echo "end nohup `date`"' > nohup.log 2> error.log &
``