自分のPCからTeraTermを使ってサーバにログインして長時間シェルを流し続ける事がたまにあります。そんな時はバックグランド実行(&)をしてあげればいいのですが、念のためにnohupをつけておきます。バックグランド実行しすぐさまログアウトしてターミナルをきちんと終わればいいのですが、バックグランド実行したまま、意図せずターミナルを×で閉じてしまったり、ネットワーク障害で切断してしまった場合はバックグランド実行プロセスも終了してしまうからです。
nohup をつけて実行する方法
[oracle@vm013 ~]$ nohup ./test01.sh &
[1] 8124
[oracle@vm013 ~]$ nohup: 入力を無視し、出力を `nohup.out' に追記します
[oracle@vm013 ~]$
コマンドを通常実行後、終了を待たずログアウトしたくなった場合
[oracle@vm013 ~]$ ./test01.sh
^Z <--- Ctl+z
[1]+ 停止 ./test01.sh
[oracle@vm013 ~]$ bg 1 <--- バックグランドでジョブ1を実行
[1]+ ./test01.sh &
[oracle@vm013 ~]$ jobs <--- 実行中のジョブを確認
[1]+ 実行中 ./test01.sh &
[oracle@vm013 ~]$ disown %1 <--- ログアウトしても流し続けたいジョブ番号を指定する
[oracle@vm013 ~]$