Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御

Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御

1. バックグラウンドで実行されるジョブ

1.sleep 999 & (ジョブ実行中)
[root@localhost ~]# スリープ 999 &
[1] 3670
2.ps -ef|grep sleep (プロセスを表示)
[root@localhost ~]# ps -ef|grep sleep
ルート 3670 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3671 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3672 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3673 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3674 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3675 ​​3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3676 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3677 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3678 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3686 950 0 10:54 ? 00:00:00 スリープ 60
3.fg(最後のものを調整)
[root@localhost ~]# fg
睡眠999
4.ジョブ(タスクの表示)
[root@localhost ~]# ジョブ
[1] 睡眠999&
[3] 睡眠999&
[4] 睡眠999&
[6]- 睡眠999&
[7]+睡眠999 
ctr1+z (完了) 完了 5. 説明 fg %N (指定されたタスクを呼び出す)
停止した
bg %3 (実行ステータス)
+ (デフォルトのアクション)
- (2回目の手術)

2. 信号を使用してプロセスを制御する

基本的なプロセス管理信号

信号ID短縮名定義名使用
1 HUPつるすプロセスを再起動せずに構成ファイルを再読み込みし、新しい構成情報を有効にすることを許可する
2内部キーボード割り込みフォアグラウンド プロセスを中断します。 ctrl+cはSIGINTシグナルを使用する
9殺す中断、傍受不可プログラムを直ちに終了します。ブロック、無視、処理できません
15デフォルト値学期終了プログラムを終了します。 SIGKILL とは異なり、傍受、無視、または処理することができます。プログラムの終了を友好的に要求し、プログラムが自らクリーンアップできるようにします。

kill コマンドは、プロセスの ID に基づいてプロセスにシグナルを送信します。名前は kill ですが、このコマンドはプログラムを終了するシグナルだけでなく、あらゆるシグナルを送信するために使用できます。

1. プロセスを表示する [root@localhost ~]# ps -ef|grep sleep
ルート 3670 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3672 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3673 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3675 ​​3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3676 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3901 950 0 10:59 ? 00:00:00 スリープ 60
ルート 3904 3642 0 10:59 pts/1 00:00:00 grep --color=auto スリープ
2. 指定されたタスクを削除する [root@localhost ~]# kill %1
[root@localhost ~]# ps -ef|grep sleep
ルート 3672 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3673 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3675 ​​3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3676 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3901 950 0 10:59 ? 00:00:00 スリープ 60
ルート 3906 3642 0 11:00 pts/1 00:00:00 grep --color=auto スリープ
[1] 睡眠999
3.kill -l (サポートされているすべてのプログラムを一覧表示)
[root@localhost ~]# kill -l
 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
 6) シガバRT 7) シグバス 8) SIGFPE 9) シグキル 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) シグマートマックス-1 64) シグマートマックス
[root@localhost ~]#
4. 3672 を強制終了する (プロセスを削除)
プロセスを表示する [root@localhost ~]# ps -ef|grep sleep
ルート 3672 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3673 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3675 ​​3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3676 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3925 950 0 11:00 ? 00:00:00 スリープ 60
ルート 4039 3642 0 11:00 pts/1 00:00:00 grep --color=auto スリープ
[root@localhost ~]# 3672 を強制終了する
[root@localhost ~]# ps -ef|grep sleep
ルート 3673 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3675 ​​3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3676 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3925 950 0 11:00 ? 00:00:00 スリープ 60
ルート 4054 3642 0 11:01 pts/1 00:00:00 grep --color=auto スリープ
[3] 睡眠99
5.killall sleep(すべてのスリープを削除)
プロセスを表示します: [root@localhost ~]# ps -ef|grep sleep
ルート 3673 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3675 ​​3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 3676 3642 0 10:54 pts/1 00:00:00 スリープ 999
ルート 4164 950 0 11:01 ? 00:00:00 スリープ 60
ルート 4174 3642 0 11:01 pts/1 00:00:00 grep --color=auto スリープ
[root@localhost ~] を正常に削除しました# ps -ef|grep sleep
ルート 4185 3642 0 11:02 pts/1 00:00:00 grep --color=auto スリープ

3. プロセスアクティビティを監視する

IO 負荷

負荷数はグローバル カウンター計算であり、すべての CPU の合計です。

スリープから復帰したタスクは異なる CPU に再スケジュールされる可能性があるため、各 CPU を正確にカウントすることは困難ですが、累積数の正確さは保証できます。

表示される負荷平均はすべての CPU を表します。
負荷値を表示して監視する

[root@localhost ~]# トップ

1. 負荷を確認する [root@localhost ~]# uptime
 11:12:36 45 分稼働、ユーザー 2 人、負荷平均: 0.06、0.01、0.20
 2. 負荷値を表示し、監視を実施する [root@localhost ~]# top
トップ - 11:15:03 47 分経過、ユーザー 2 人、平均負荷: 0.00、0.00、0.16
タスク: 合計 328、実行中 1、スリープ中 327、停止中 0、ゾンビ 0
%CPU: 0.0 us、0.7 sy、0.0 ni、99.0 id、0.0 wa、0.3 hi、0.0 si、0.0 st
MiB メモリ: 合計 804.8、空き 67.5、使用中 474.7、バッファ/キャッシュ 262.5
MiB スワップ: 合計 2048.0、空き 1427.5、使用済み 620.5。使用可能なメモリ 196.8 
    PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド  
   3884 ルート 20 0 0 0 0 I 0.3 0.0 0:00.57 kworker+ 
   4404 ルート 20 0 64856 4880 4008 R 0.3 0.6 0:00.17 トップ      
      1 ルート 20 0 245372 7252 4356 S 0.0 0.9 0:03.43 systemd  
      2 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 
      3 ルート 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp   
      4 ルート 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par+ 
      6 ルート 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker+ 
      8 ルート 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_perc+ 
      9 ルート 20 0 0 0 0 S 0.0 0.0 0:00.24 ksoftir+ 
     10 ルート 20 0 0 0 0 I 0.0 0.0 0:00.35 rcu_sch+ 
     11 ルート rt 0 0 0 0 S 0.0 0.0 0:00.00 移行+ 
     12 ルート rt 0 0 0 0 S 0.0 0.0 0:00.00 ウォッチド+ 
     13 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0  
     15 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmp+ 
     16 ルート 0 -20 0 0 0 I 0.0 0.0 0:00.00 ネット    
     17 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd  
     18 ルート 20 0 0 0 0 S 0.0 0.0 0:00.00 クンタ+ 
     説明 mtlを押す
[root@localhost ~]# トップ
非表示にするには1を押してください
CPU情報を表示する

4. リアルタイムプロセス監視

Topはシステム情報のフルスクリーンダイナミック表示を実現するために使用されます

//top コマンドの対話型サブコマンド:
    M //常駐メモリのサイズで並べ替え、デフォルトではCPUの割合で並べ替え P //CPU使用率で並べ替え T //累積時間(CPU使用時間)で並べ替え l //平均負荷と起動時間を表示 t //プロセスとCPUステータスの関連情報を表示 m //メモリ関連の情報を表示 c //完全なコマンドライン情報を表示 q //topコマンドを終了 k //プロセスを終了 1 //すべてのCPU情報を表示 s //更新時間間隔を変更 us //ユーザー空間を示します。
    sy // カーネル空間を示します。
    ni // nice値、CPU使用率の調整を示します。
    id // アイドル率を示します。
    wa //IO が完了するまで待機する時間の割合を示します。
    hi // ハード割り込み、つまりハードウェア割り込みによって占有される時間の割合を示します。
    si // ソフト割り込みによって占有される時間の割合を示します。
    st // は、steal(盗む)の略で、仮想化技術(仮想マシンの実行など)によって盗まれた時間です。
PR //優先度 NI //nice値 VIRT //仮想メモリセット RES //常駐メモリセット SHR //共有メモリサイズ S //プロセスステータス

以上が、Linux運用保守基本プロセス管理のリアルタイム監視と制御の詳細です。Linux運用保守プロセスの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Linux の操作とメンテナンスの基本的なスワップ パーティションと LVM 管理のチュートリアル
  • Linux の操作とメンテナンスの基本システムディスク管理チュートリアル
  • Linuxの運用と保守の基本プロセス管理と環境構成分析
  • Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

<<:  Layuiはログインインターフェース検証コードを実装します

>>:  ウェブサイト制作におけるオンライン広告の新しいインタラクティブ体験(グラフィックチュートリアル)

推薦する

Vue3 における非親子コンポーネントの値転送の詳細な説明

目次アプリ.vueサブ1.vueサブ2.vue要約する vue2 における非親子コンポーネントの値の...

HTML ドラッグ アンド ドロップ機能の実装コード

Vueベースこの機能の核となるアイデアは、JavaScript コードを通じてページ上のノードの左余...

MySQL 8.0.17 のインストールと使用方法のチュートリアル図

前面に書かれた過去および現在のプロジェクトで最も一般的に使用されているリレーショナル データベースは...

mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル

目次1. MySQLのコンパイルとインストール: 2. 最初のマルチインスタンス3307を準備する3...

ネイティブ js で呼び出し、適用、バインドを実装する方法

1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

Vue v-model 関連の知識のまとめ

​v-model は、入力とフォーム データ間、または 2 つのコンポーネント間の双方向データ バイ...

Excelアップロード機能を実現するVue + iViewの完全コード

1. HTML部分 <Col span="2">ファイルをアップロー...

MySQL データ型における DECIMAL の使用法の詳細な説明

MySQL データ型における DECIMAL の使用法の詳細な説明MySQL のデータ型には、INT...

VMware15 の Deepin インストール詳細チュートリアル (画像とテキスト)

序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...

MySQLクエリのソートとページング関連

概要通常、データベース内のデータを直接表示することは望ましくないため、最後の 2 つのセクションでは...

Vue は小数点付きの星評価を実装します

この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的...

Vue axios インターセプターは、繰り返しリクエストのキャンセルによく使用されます。

導入前回の記事では、axios のシンプルなカプセル化と、axios インターセプターの適用シナリオ...

VUE v-for の :key の詳細な説明

v-for タグにキーが追加されていない場合。 <!DOCTYPE html> <...

MySQL の文字セットの不一致によって発生する異常な接続テーブルの解決方法

目次1. 解決策2. MySQLの文字セット文字セット検証ルール次のように簡単なテーブルクエリを実行...