Glide Note

glidenote's blog

うっかりnohup無しで長時間かかるコマンドを実行したときに後から終了しないようにする

すぐ終わるかと思って、nohuptmuxも無しで 実行したら全然終わらなくて帰れなくなって久々にググってやったのでメモ。

定時前に数分で終わると思ったrpm作成で下記みたいなことを実行して、

1
rpmbuild -ba hoge.spec

いつまで経っても終わらないから帰れない… 途中で終了してしまうと困るので、ログアウトしても終了しないように。

作業の流れ

  1. Ctrl+Zでコマンドの中断
  2. bgでバックグラウンドに回す
  3. jobsでジョブの確認
  4. disownでログアウトしても実行されるようにする

実際のコマンドだと

1
2
3
4
5
rpmbuild -ba hoge.spec
# Ctrl+Zで中断
bg 1
jobs 1
disown %1

で帰れる。

nohupdisownの違いは

  • nohup:コマンドをハングアップシグナル無視で実行させる。
  • disown:nohupをつけ忘れた時、途中からバックグラウンドでの実行へ切り替える

参考

Comments