Linuxでバックグラウンドプロセスを管理する方法


Linuxオペレーティングシステムに新しく、端末/セッションを使用してコマンドやプロセスを起動した場合、別のコマンドを開始する前にプロセスやコマンドが終了するまで待つ必要があることに注意してください.これは、セッションまたはターミナルを使用してコマンドを実行すると、デフォルトでフォアグラウンドで処理が開始されるためです.新しい端末を開くことなく別のコマンドを実行するにはどうすればよいですか?
このポストでは、Linuxでバックグラウンドとフォアグラウンドを管理する方法を示します.
しかし、その前に、前景プロセスと背景プロセスとは何かを理解することができます.
フォアグラウンドプロセスは、現在実行中のプロセスまたはジョブです.したがって、端末毎に1つだけのフォアグラウンドプロセスが存在します.現在のフォアグラウンドプロセスが新しいフォアグラウンドプロセスを開始する前に終了するまで待機する必要があります.
****現在のセッションで始まる任意のコマンドまたはプロセス
バックグラウンドプロセスは、バックグラウンドで実行されるプロセスまたはジョブであり、ユーザーからの対話を必要としません.明らかに1つ以上のバックグラウンドプロセスがある.
例:最も一般的な例は、あなたのウェブサーバです.
この例では、コマンドvmstat 1を起動します
shaikh@shaikhu-com:~$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 3045156 167484 2449380    0    0    80    56  469 1138 19  5 76  0  0
 1  0      0 3044644 167492 2450152    0    0     0    92  299  604  2  1 98  0  0
VMSTATは、リアルタイムメモリ使用量とCPUのユーティリティを表示するコマンドです.あなたがそれについてもっと知りたいならば、私の前のポストhereを訪問してください
上記のコマンドで
ここで注意することは、上記のコマンドがCPUの統計情報を端末に5秒おきに印刷するまで割り込みます.終了する場合は、CTL + Cキーを押すか、一時停止したり停止したりする場合は、CTL + Zキーを押します.

bg :ジョブをバックグラウンドに移動する
バックグラウンドに既に開始されているジョブを移動したい場合は、ターミナルキーCTL + Z * *にアクセスでき、* * bg
コマンドの下でフォアグラウンドでジョブを開始します.ここでは、テキストファイルにCPUの統計情報を書いています.ご覧の通り、フォアグラウンドで走っているので、新しいコマンドを起動できません.
shaikh@shaikhu-com:~$ vmstat 5 >> vmstat.txt

このジョブを一時停止してからbg
shaikh@shaikhu-com:~$ vmstat 5 >> vmstat.txt
^Z
[1]+  Stopped                 vmstat 5 >> vmstat.txt
shaikh@shaikhu-com:~$ bg
[1]+ vmstat 5 >> vmstat.txt &
shaikh@shaikhu-com:~$ 
今すぐバックグラウンドで実行しているジョブと我々は端末を得た

コマンドを開始し、バックグラウンドで実行する方法
コマンドを開始し、バックグラウンドで実行する
command &
例:
shaikh@shaikhucom:~$ sleep 400 &
[2] 11122
shaikh@shaikhucom:~$ 

Job :ジョブステータスをチェックするコマンド
このコマンドは、現在の端末
shaikh@shaikhucom:~$ jobs
[1]-  Running                 vmstat 5 >> vmstat.txt &
[2]+  Running                 sleep 400 &
shaikh@shaikhucom:~$ 

ここで括弧括弧は[ n ]はジョブIDかジョブ番号であり、+は最近のコマンドかジョブを示します.プロセスIDが- lオプションを使用するのを見たい場合
shaikh@shaikhucom:~$ jobs -l
[1]- 10216 Running                 vmstat 5 >> vmstat.txt &
[2]+ 11122 Running                 sleep 400 &
shaikh@shaikhucom:~$ 
番号10216と11122はプロセスIDである
仕事のための異なるオプション

- l :通常の情報に加えてIDをリスト表示する

- n :最後からステータスを変更したプロセスのみをリストする

通知

- p :プロセスIDのみをリスト表示する

- r :出力を実行中のジョブに制限する

- s :出力を停止したジョブに制限する

kill % N :ジョブIDを使用してジョブを殺す
killコマンドを使用してジョブをkillします.%はジョブIDまたはジョブ番号を示すために使用されます
haikh@shaikhu-com:~$ jobs
[1]-  Running                 vmstat 5 >> vmstat.txt &
[2]+  Running                 sleep 400 &
shaikh@shaikhucom:~$ kill %2
shaikh@shaikhucom:~$ jobs
[1]+  Running                 vmstat 5 >> vmstat.txt &
shaikh@shaikhucom:~$ 


今見ることができるように、我々はバックグラウンドで実行されているジョブだけを持っており、ジョブID🙂

FG :ジョブを前景へ動かすコマンド
* FG *コマンドを使用してジョブを前景に移動します.デフォルトでは、それはフォアグラウンドに最も最近のバックグラウンドジョブをもたらすでしょう
shaikh@shaikhucom:~$ jobs
[1]   Running                 vmstat 5 >> vmstat.txt &
[2]-  Running                 sleep 400 &
[3]+  Running                 sleep 500 &
shaikh@shaikhucom:~$ fg
sleep 500
[2]   Done                    sleep 400
shaikh@shaikhucom:~$ 

バックグラウンドで複数のジョブを実行している場合、% nを使用して特定のジョブをフォアグラウンドに移動します
shaikh@shaikhucom:~$ fg %2

psコマンドすべてのプロセスを見る
psコマンドを使用してアクティブなプロセスを確認します.
オプションの使用

ps ax :システム内で現在アクティブになっているすべてのプロセスを見るために(前の記事を使ってリアルタイムプロセスのコマンドをチェックします).これは非常に長いリストになりますので、以下のパラメータを使用します

ps t :現在の端末で実行中のすべてのプロセスを一覧表示する
shaikh@shaikhucom:~$ ps T
    PID TTY      STAT   TIME COMMAND
   5786 pts/0    Ss     0:00 bash
  10216 pts/0    S      0:00 vmstat 5
  12983 pts/0    R+     0:00 ps T
shaikh@shaikhucom:~$ 

結論
それで、このポストでは、我々はバックグラウンドとフォアグラウンドプロセスを管理するために、異なるコマンドを学びました.我々は学んだ

- bgとfgをバックグラウンドとフォアグラウンドにジョブを移動させる.

- jobコマンド現在の端末でアクティブなすべてのジョブを一覧表示する.

- kill killコマンドを実行します.

- ps commandすべてのアクティブで実行中のプロセスのリストを見る

また、バックグラウンドで仕事を始める方法を学びました.あなたがリアルタイムメモリとCPU使用を知っていて、あなたのシステムで動いているすべてのプロセスをコントロールしたいならば、私の最後のポストhttps://shaikhu.com/how-to-monitor-cpu-utilization-in-linux-ckgcp9gex07g8pas1ees0hz7tをチェックしてください