ジョブの操作

たとえば、vmstat 3 100
とすると、vmstatコマンドは、フォアグランドで動作する。
また、vmstat 3 100 &
とするとvmstatコマンドは、バックグラウンドで動作する。
いずれの場合も、SSHで接続している場合に、exitをしても接続が切断されず、SSHを強制的に切断するとプロセスが強制終了してしまう。(シェルの種類とsshのバージョンによっては挙動が異なるようだ)
リモート接続している場合において、処理が接続中に終わらないことが分かっている場合には、
nohup vmstat 3 100 &
などとすることで、exitをすれば接続が切断される。
ただ、当初はすぐに終わる処理だと思っていて、フォアグラウンドで処理していたが、なかなか終わらない場合には、(bashシェルの場合)次の操作をするとよい。
Shift+Z でフォアグラウンド処理を停止したうえで、
jobsコマンドを発行し、対象のジョブ番号を確認する。
そして、bg ジョブ番号
とすることでバックグラウンドプロセスに変更できる。(フォアグラウンドプロセスにする場合には、fcコマンドをする)
そのうえで、disown %ジョブ番号
とすれば、nohupしたのと同じ状態になるはずなのだが、自分の環境ではうまくいかない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です