Linux/UNIXで実行しているコマンドをバックグラウンドジョブに切り替える
Pocket

Linux/UNIXで仕事している際、コマンド実行中に別の作業をしたり、ターミナル自体を閉じたくなる事がある。
(たとえば、処理が思ったよりも時間がかかってて、離席したい時など)

screenやtmuxなどで接続している場合はそのまま切っても再接続できるけど、そうでない場合も多いだろう。そんな時は、実行しているコマンドをバックグラウンドに移してやれば良い。
やり方は簡単。まず、コマンドを実行中のターミナル上で、「Ctrl + z」キーを押下することで、コマンドが一時停止状態に移行する。

●実行例

20160316_000008

 

で、この状態で「bg」コマンドを実行することで、先ほどまで実行されていたコマンドがバックグラウンドで再開される。

20160316_000009

 

ただし、ここで注意したいのが今の状態だとターミナルを閉じてしまうと、コマンドは終了されてしまう。
ターミナルを閉じてもジョブを実行し続けたい場合は、「disown」コマンドで対象のジョブ番号を指定することで、今開いているターミナルとジョブの紐付けを解除することができる。

disown -h Job番号
Sponsored Links

ジョブ番号を知りたい場合は、jobsコマンドで確認すると良いだろう。

[root@BS-PUB-GFRONT-01 ~]# # Job番号の取得
[root@BS-PUB-GFRONT-01 ~]# jobs
[1]+  実行中               ping 8.8.8.8 >> /tmp/test.txt &
[root@BS-PUB-GFRONT-01 ~]#
[root@BS-PUB-GFRONT-01 ~]# # 1番をバックグラウンドジョブとする
[root@BS-PUB-GFRONT-01 ~]# disown -h %1

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

This article has 1 comments

  1. Pingback: Linuxでバックグラウンドジョブをフロントに戻す | 俺的備忘録 〜なんかいろいろ〜

Leave a Comment

メールアドレスが公開されることはありません。