実行中のコマンドをバックグランドに切り替える

  • 38
    Like
  • 0
    Comment
More than 1 year has passed since last update.

コンパイルやバックアップなどの時間の見積もりを間違えて、
いつまで経っても終わらない(帰れない)ときの解決方法

  1. Ctrl+zでジョブを一時停止
  2. bgでバックグランドで再開させる
  3. jobsで実行中のジョブを表示
  4. disownでログアウトしても実行されるようにする
$ mysqldump -uroot > dump.sql
# ここでCtrl+z押下
[1]+  Stopped                 mysqldump -uroot > dump.sql
$ bg 1
[1]+ mysqldump -uroot > dump.sql &
$ jobs
[1]+  Running                 mysqldump -uroot > dump.sql &
$ disown %1

最初から長くなることがわかっている場合はnohupをつけると良い

$ nohup mysqldump -uroot > dump.sql &
[1] 12280
nohup: appending output to `nohup.out'
$ logout #しても実行され続ける
参考

うっかりnohup無しで長時間かかるコマンドを実行したときに後から終了しないようにする - Glide Note - グライドノート