Bird Brother Linux Private Kitchen第17章プログラム管理とSELinux調査

Bird Brother Linux Private Kitchen第17章プログラム管理とSELinux調査

17.1プロセスとは

Linuxシステムの場合:イベントがトリガーされると、システムはそれをプロセスとして定義し、プロセスにPIDと呼ばれるIDを付与します。同時に、プロセスをトリガーしたユーザーと関連属性との関係に従って、PIDに有効なセットが与えられます権限設定。それ以降、このPIDがシステムで実行できる操作は、このPIDの権限に関連しています。

17.1.1プロセスと手順

  • プログラム:通常、物理ファイルの形式でストレージメディア(ハードディスク、CD、フロッピーディスク、テープなど)に配置されたバイナリプログラム
  • プロセス:プログラムがトリガーされた後、エグゼキューターの権限と属性、プログラムコード、プログラムに必要なデータなどがメモリに読み込まれます。オペレーティングシステムは、このメモリ内のユニットに識別子(PID)を割り当てます。つまり、プロセスは実行中のプログラムです。

17.2ジョブ制御

このジョブ制御(ジョブ制御)は、bash環境で使用されます。つまり、システムにログインしてbashシェルを取得した後、単一の端末で複数のジョブの動作管理を同時に実行できます。たとえば、bashにログインした後、ファイルのコピー、データの検索、コンパイル、viプログラムの作成を行います。もちろん、6つのコマンドラインインターフェイスのターミナル環境に繰り返しログインできますが、ジョブ制御を使用するbashに実装することもできます。

17.2.1作業管理とは

bashジョブ制御を実行するには、注意する必要がある制限は次のとおりです。

  • これらのタスクによってトリガーされるプロセスは、シェルの子プロセスからのものでなければなりません(独自のbashのみを管理してください)。
  • フォアグラウンド:コマンドを制御および実行できるこの環境は、フォアグラウンド作業と呼ばれます
  • バックグラウンド:単独で実行できるジョブ。[Ctrl] + Cを使用して終了することはできません。bg/ fgを使用してジョブを呼び出すことができます
  • バックグラウンドで実行されているプロセスは、ターミナル/シェル入力(入力)を待機できません

17.2.2ジョブ制御管理

実際のジョブ制御コマンド

  • &に直接コマンドをスローして&バックグラウンドで実行:コマンドの最後のスペース+&は、コマンドをバックグラウンドで実行できます。ただし、この時点では、このコマンドのすべての出力は現在のインターフェースで引き続き印刷され、フォアグラウンドインターフェースでのバックグラウンド作業の影響はリダイレクトによって除外できます。
  • 現在の作業を背景に投げて一時停止:[Ctrl] + Z
  • 現在のバックグラウンドジョブの状態を表示します:ジョブ。-lはジョブのPIDを表示し、-rはバックグラウンドで実行中のジョブのみを表示し、-sはバックグラウンドで一時停止しているジョブのみを表示します。
  • バックグラウンドの作業をフォアグラウンドにして処理します:fg。fg%[ジョブ番号]特定のジョブ番号のバックグラウンド作業をフォアグラウンドに戻します。ただし、ジョブ番号が指定されていない場合、バックグラウンドに配置された最後のジョブが復元されます。ジョブを通してバックグラウンドジョブを表示し、表示+は最後に配置されたジョブを示し、表示は次に配置された最後のジョブを示します。
  • バックグラウンドでの作業のステータスが実行中になるようにします:bg。また、bg%[job number]を使用して、バックグラウンドで実行する作業を指定します。
  • 管理バックグラウンドでの作業:kill。サポートされているすべてのシグナルはkill -lで確認できます。コマンドの形式はkill-[signal]%[job number]で、-1はパラメーターの構成ファイルを再度読み取ることを意味します。-2はCtrl + C操作を実行します。-9はジョブを即座に強制的に削除します。-15(-SIGTERM)通常の手順は、ジョブを終了することです。killのデフォルトの操作オブジェクトはプロセスなので、%を省略し、PIDを使用して直接操作できます。

17.2.3オフライン管理の問題

なお、作業管理で触れた背景とは、ターミナルモードで[Ctrl] + Cの割り込みを回避できる状況であり、システムの背景に置かれていないことに注意してください。したがって、作業管理の背景は依然として端末に関連しています。この場合、リモート接続でLinuxホストに接続し、&の途中で作業をバックグラウンドに置くと、作業が完了する前にオフラインになると、作業は完了しません。継続実行。

システムのバックグラウンドで実行する必要がある場合は、atコマンドまたはnohupを使用して処理できます。

nohup [コマンドとパラメーター](&)は、ターミナルのフォアグラウンド(バックグラウンド)で機能します。しかし、nohupはbash組み込みコマンドをサポートしていないため、コマンドは外部コマンドでなければなりません。同時に、nohupはデフォルトでこのコマンドの出力を現在のパスのnohup.outファイルにリダイレクトします。

17.3プロセス管理

プロセス管理が解決できる実用的な問題:

  • システムリソース全体が使い果たされそうになったときに、システムを最も消費しているプロセスを見つけ、そのプロセスを削除してシステムを通常の状態に戻すことはできますか?
  • プログラムが適切に作成されておらず、問題のあるプロセスがメモリにある場合、どのようにそれを見つけて削除しますか?
  • 同時に、システムでは5つまたは6つのタスクが実行されていますが、そのうちの1つが最も重要です。その重要なタスクを最初に実行するにはどうすればよいですか?

17.3.1プロセスのビュー

ps:特定の時点でのプロセス実行ステータスを選択します。ps -lは独自のbashプログラムをチェックし、ps auxはシステムで実行されているすべてのプログラムをチェックします。

ps -l結果の説明:

  • F:プロセスフラグ(プロセスフラグ)を表し、このプロセスのアクセス許可を示します。4は、このプロセスの権限がrootであることを意味します。1は、このプロセスはコピー(fork)のみ可能で、実際には実行(exec)できないことを意味します。
  • S:このプロセスのステータス(STAT)を表します。R(実行中)プロセスは実行中です; S(スリープ)プロセスは現在スリープ状態(アイドル)ですが、目覚めさせることができます(シグナル); Dはスリープ状態で目覚めさせることはできません。通常、このプロセスはI / Oを待機している可能性があります状況、T停止状態、Z(ゾンビ)ゾンビ状態、プロセスは終了していますが、メモリから削除できません。
  • UID / PID / PPID
  • C:CPU使用率を表し、単位はパーセントです
  • PRI / NI:CPUによって実行されるプロセスの優先順位を表すPriority / Niceの略語。値が小さいほど、CPUによるプロセスの実行が高速になります。
  • ADDR / SZ / WCHAN:それらはすべてメモリに関連しています。ADDRはカーネル機能であり、プロセスのメモリのどの部分にあるかを示します。実行中のプロセスの場合、通常は-と表示されます。SZは、このプロセスで使用されるメモリの量を表します。WCHANは、現在のプロセスが実行中であるかどうかを示します。同様に、それが-の場合は、実行中であることを意味します。
  • TTY:ログイン担当者の端末の場所。リモートログインの場合は、動的端末インターフェース(pts / n)を使用します。
  • 時間:使用されたCPU時間。このプログラムは実際にはシステム時間ではなくCPU実行時間を費やしていることに注意してください
  • CMD:コマンドの省略形で、このプログラムがプロセスをトリガーする原因となったコマンドは何ですか

ps aux結果の説明:

  • USER:プロセスが属するユーザーアカウント
  • %CPU:プロセスが使用するCPUリソースの割合
  • %MEM:プロセスが占有している物理メモリの割合
  • VSZ:プロセスが使用する仮想メモリの量(KB)
  • RSS:プロセスが占有する固定メモリ量(KB)
  • START:プロセスが開始するようにトリガーされた時刻
  • COMMAND:プロセスの実際のコマンド

上:プロセスの変更を動的に表示します。

pstree:プロセスの関係をツリーの形で記述します

 

おすすめ

転載: blog.csdn.net/a40850273/article/details/104169257