ホームページ > 運用・保守 > Linuxの運用と保守 > Linux でのプロセス管理 - ps、pstree、およびその他のコマンドの概要

Linux でのプロセス管理 - ps、pstree、およびその他のコマンドの概要

齐天大圣
リリース: 2020-10-10 13:12:19
オリジナル
2704 人が閲覧しました

プロセスとはその名の通り、実行中のプログラムのことで、オペレーティングシステムの基本動作単位として各プロセスには固有のプロセスIDがあり、このIDでプロセスを管理します。

ps

各プログラムの実行状況を確認するには、ps コマンドを使用します。ここでは、親プロセスと子プロセスの概念について説明します。子プロセスは親プロセスから派生し、親プロセスを持たないプロセスは孤立プロセスと呼ばれます。

現在の bash 環境のプロセス ステータスを表示します:

# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 43530 43528  0  80   0 - 28886 do_wai pts/0    00:00:00 bash
0 R     0 43552 43530  0  80   0 - 38336 -      pts/0    00:00:00 ps
ログイン後にコピー

ここで、UID はユーザー ID を表し、PID はプロセス ID を表し、PPID は親プロセスの ID を表します。

すべてのプロセス ステータスを表示 ;

# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
……
root         2  0.0  0.0      0     0 ?        S    Sep29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep29   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Sep29   0:00 [kworker/0:0H]
……
ログイン後にコピー

ps aux を使用してすべてのプロセス ステータスを表示できますが、親プロセス ID はリストされません。 ps -lA または ps -ef を使用すると、すべてのプロセスを表示し、親プロセス ID を表示できます。

[root@localhost ~]# ps -lA
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 47844 ep_pol ?        00:00:04 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:02 ksoftirqd/0
ログイン後にコピー

pstree

上記とは異なりますが、すべて表示 プロセスには親プロセス ID がリストされていますが、親プロセスと子プロセスの関係は一見するとわかりません。 pstree を使用すると、すべてのプロセスをプロセス ツリーとしてリストできます。

# pstree -up
systemd(1)─┬─BT-Panel(5462)───{BT-Panel}(5469)
           ├─BT-Task(5361)─┬─{BT-Task}(5375)
           │               ├─{BT-Task}(5376)
           │               ├─{BT-Task}(5377)
           │               ├─{BT-Task}(5381)
           │               ├─{BT-Task}(5382)
           │               └─{BT-Task}(5390)
……
ログイン後にコピー

特定のプロセスのプロセス数を表示することもできます。

# pstree -p 5389 -up
mysqld(5389,mysql)─┬─{mysqld}(5414)
                   ├─{mysqld}(5415)
                   ├─{mysqld}(5416)
……
ログイン後にコピー

pidof

プロセス名からプロセス ID 番号を表示します。たとえば、mysqld プロセス ID を知りたい場合は、pidof コマンドを通じて確認できます。

# pidof mysqld
5389
ログイン後にコピー

サーバー上に同一のプロセス名が複数存在する可能性があるため、pidof を通じて複数のプロセス ID が見つかることに注意してください。

# pidof php-fpm
42609 41610 41588 ……
ログイン後にコピー

kill、killall

#工程管理は工程番号PIDと信号信号で管理します。

コード名前コンテンツ1SIGHUP 終了したプログラムを開始すると、2SIGINT915#19 SIGSTOP は、キーボードを使用して [ctrl]-z を入力してプログラムを一時停止するのと同じです kill と killall の違いは、kill はプロセス ID を通じてプロセスを管理するのに対し、killall はプロセス名を通じてプロセスを管理することです。
## を再起動するのと同様に、PID が独自の構成ファイルを再読み取ることができます。 # キーボードを使用して [ctrl]-c を入力してプログラムの進行を中断するのと同じ
SIGKILL はプログラムの強制中断を表します。プログラム
SIGTERM が進行すると、正常終了プログラムでプログラムを終了します。正常終了ですので、以降の操作で完了します。この信号はデフォルト値でもあり、信号を追加しない場合はこの値が使用されます。
うわー

以上がLinux でのプロセス管理 - ps、pstree、およびその他のコマンドの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート