fgとbgでプロセスを操る
推しコマンドの一つです
はじめに
ソフトウェアエンジニアたるもの、Linuxコマンドには抵抗なく華麗に操作したいですよね。
かくいう私はというと、基本的なコマンド(ls, cdなど)はもちろん使いこなせるものの、伸び代はまだまだありといった状態です。
そんな私が今後使っていきたいコマンドの一つとして、fg と bg (とその関連操作)をご紹介します。
登場人物
本記事には、fg / bg / jobs / Ctrl + z の4つが登場します
Ctrl + z は fg と非常に繋がりが深いショートカットキーで、それ以外の3つはlinuxコマンドです。
fgコマンドとは?
バックグラウンドや一時停止中のジョブをフォアグラウンド(最前面)に切り替えて再開するコマンドです。
使い方は簡単で、以下のように入力するとカレントジョブ(後述)が最前面を占有します。
$ fg -- カレントジョブを実行
$ fg %1 -- job番号を指定して実行
$ fg %npm -- コマンド名を指定して実行
※ 引数なしではカレントジョブに対して実行しますが、引数で対象を指定することもできます。
カレントジョブとは、直前にバックグラウンド実行されたジョブ または 直前にsuspend(一時停止)されたジョブのことです。
カレントジョブの確認には jobs コマンドを使用します。
$ jobs
[1] running less app/pages/index.vue
[2] running sleep 1000
[3] + suspended npm run dev
+ がついているものがカレントジョブにあたり、running / suspended などのステータスと共にコマンドが表示されます。
その名の通りですが、runnningが(バックグラウンドで)実行中、suspendedが一時停止中となります。
suspended状態にするには??
コマンド実行中に Ctrl + z を押下することで、実行中のコマンドを一時的に停止することができます。
jobsを実行すると、以下のようになります。
$ jobs
[1] + suspended npm run dev
bgコマンドとは?
一時停止(suspended)していたジョブを、バックグラウンドで再開させるコマンドです。
$ bg -- カレントジョブを実行
$ bg %1 -- job番号を指定して実行
$ bg %npm -- コマンド名を指定して実行
fgと同様、引数なしではカレントジョブに対して実行しますが、引数を指定することも可能です。
また、(余談ですが)最初からバックグラウンド実行するには以下のように実行することもできます。
$ npm run dev & -- `&`を付与するとバックグラウンド実行
おわりに
Have a good Linux life!!! 😍