タグ

nohupに関するskypenguinsのブックマーク (4)

  • HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita

    人に教えるには自分が完全に理解していなければ、ということで調査・検証した結果。 動機 シェルからバックグラウンドで処理を行うには? nohup コマンド実行 & を使う。 コマンド実行 => Ctrl-Z => disown を使う。 定番は前者だが、両者の違いは何なのか? disownとは一体何をするのか? この機会に調べてみた。 結果のまとめ 長くなったので最初にまとめを。しかしまとめも長い。 (後自分が読む時に一番下にスクロールしたくないので…) ジョブテーブル シェルはセッションに紐づくジョブテーブルを持っている。 バックグラウンドジョブを登録している。 (フォアグラウンドジョブは未確認。ソースを読むしかないか) jobsビルトインコマンド で一覧を参照可能。 ここに見える限り、シェルのexit時にSIGHUPを送る。 この一覧にない場合、exit時にSIGHUPは送らない。 シェ

    HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita
  • バックグラウンド実行で時間短縮しよう!! - Qiita

    これで実行すると、長い処理だと処理が終わるまで何もできなくなって困る。タブを開いてもいいけどめんどくさいし、sshで接続してる時とかは通信が途切れても大丈夫なようにしないといけない。 その時に使うのが、nohupコマンドと&です。 このように、nohupと&で挟むだけでバックエンドで実行できます。 出力先を変える 普通に実行すると、nohup.outというファイルに結果が溜まってしまうので、また実行した時とかにもどんどん溜まり、gitで扱う時とかもファイルが大きくなってめんどくさくなる。 そこで、出力先を変更する。まずは出力先用ディレクトリを作ると便利。

    バックグラウンド実行で時間短縮しよう!! - Qiita
  • ログアウトしてもバックグラウンド ジョブを継続する方法

    はじめに SSH 接続で時間の掛かるシェルスクリプトをバックグラウンドで走らせて帰りたいのに、SSH 接続を切るとジョブが死んでしまいます。SSH 接続に限らず目の前の OS からログアウトしたりターミナル エミュレータを終了しても同じ現象が起こります。 この症状は正常です。なぜなら、バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるからです。 シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。ですからログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうので親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。 nohup コマンド

    ログアウトしてもバックグラウンド ジョブを継続する方法
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

  • 1