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はログインインターフェース検証コードを実装します

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

推薦する

フロントエンドに必要なNginx設定の詳細な説明

Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり...

HTML 要素に注釈を付けるときにクラスと ID のどちらが優れているかを分析する

Web ページには、非常に複雑な HTML 構造があります。CSS を使用して関連するスタイルを定義...

jQueryは検証コード送信のコントロールボタンを無効にする機能を実装します

必要な効果: 確認コードを送信するためにクリックした後、ボタンは無効になり、5 秒後に無効解除されま...

Vue はコンポーネント間の通信をどのように実装しますか?

目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...

Vue3は現在のルーティングアドレスを取得します

正解useRouterの使用: // ルーターパス: "/user/:uid" ...

Web 標準アプリケーション: Tencent QQ ホームページの再設計

Tencent QQのホームページがリニューアルされ、Webフロントエンド開発がますます注目を集めて...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

Linux viコマンドの知識ポイントと使い方のまとめ

Linux viコマンドの詳しい説明vi エディタは、すべての Unix および Linux システ...

フレックスレイアウトのスペース間の最後の行の左揃えの問題を解決する方法

まずはコードと効果を見てみましょう↓ <スタイル> 。主要 { アウトライン: 1px ...

ボタンのタイプが送信として指定されていません。ボタンをクリックしても、指定された URL にジャンプしません。

現在、プロジェクトの要件により、フォームの送信を制御し、送信前にデータを検証および処理するために j...

Flex レイアウトで適応型ページを作成する (構文と例)

Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...

js を使用して 2 つの HTML ウィンドウ間で通信する方法

シナリオ: ページAがページBを開くと、ページBで操作した後、ページAは変更されたデータを同期する必...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

ブラウザ(IEシリーズ)を判別するための条件付きコメント

<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...

MySQLにおけるSQLの実行順序についてのちょっとした質問

今日、仕事中に左結合に関するSQLの問題に遭遇しました。後で解決しましたが、この問題を通じてSQLの...