Linux でプロセスの動作を確認する方法: 1. ps コマンド (現在のユーザーのすべてのプロセスを一覧表示できます); 2. top コマンド (システムのプロセスのステータスをリアルタイムで表示できます); 3. top バージョンを改良し、より対話的な機能を提供できる htop コマンド、4. プロセス間の関係をツリー構造で表示できる pstree コマンド、5. 開いているファイルとネットワーク接続を表示できる lsof コマンド現在のシステム。
この記事の動作環境: Linux 5.18.14 システム、DELL G3 コンピューター。
1. Linux システムでは、次のコマンドを使用して、実行中のプロセスを詳細に表示できます:
1. ps コマンド: ps コマンドは、すべてのプロセスを一覧表示できます。現在のユーザーのプロセス。一般的に使用されるパラメータには、-a、-u、-x などが含まれます。たとえば、ps -aux コマンドを使用すると、プロセス ID、親プロセス ID、ユーザー、CPU 使用率、メモリ使用量などを含む、すべてのプロセスの詳細情報を一覧表示できます。
2. top コマンド: top コマンドは、システムのプロセス状態をリアルタイムに表示できます。プロセス リストは、対話型インターフェイスを介してリアルタイムで更新し、さまざまな方法で並べ替えることができます。 top -c コマンドを使用すると、プロセスの完全なコマンド ラインを表示できます。
3. htop コマンド: htop は、top の改良版で、よりインタラクティブな機能を提供し、マウスを使用して操作できます。 htop では、プロセスに関する詳細情報を表示することもできます。
4. pstree コマンド: pstree コマンドは、プロセス間の関係をツリー構造で表示できます。 pstree -p コマンドを使用すると、プロセスの PID を表示できます。
5. lsof コマンド: lsof コマンドは、現在のシステムで開いているファイルとネットワーク接続を表示できます。 -l パラメータを使用すると、プロセスの PID やプロセスのユーザーなど、プロセスに関する詳細情報が表示されます。
つまり、上記のコマンドは実行中のプロセスを表示するために使用でき、状況に応じて異なるコマンドが適しています。ニーズに応じて適切なコマンドを選択してください。
2. 各プロセスのステータスの意味
1. R: Running
は、プロセスが実行中、または許可キューで待機中であることを意味します。
2. S: 割り込み
プロセスがスリープしていることを示し、一定の条件が成立したり、シグナルを受信したりすると、割り込み状態から抜け出します。
3. D: Uninterruptible
プロセスがシステムの非同期信号に応答せず、kill コマンドを使用しても中断できないことを示します。
4. Z: Zombie
プロセスは終了したが、親プロセスが wait(4) システム関数を呼び出してプロセスを解放するまで、プロセス記述子はまだ存在していることを示します。
5. T: Stop
は、プロセスが停止信号を受信した後に実行を停止することを意味します。
3. ステータス
[root@mycentos ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 191120 3588 ? Ss 2021 25:59 /usr/lib/systemd/systemd --system --deserialize 19 root 2 0.0 0.0 0 0 ? S 2021 0:00 [kthreadd] root 4 0.0 0.0 0 0 ? S< 2021 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 2021 1:51 [ksoftirqd/0] root 7 0.0 0.0 0 0 ? S 2021 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 2021 0:00 [rcu_bh] 1、USER:进程的所有者 2、PID: 进程ID号 3、%CPU:运算器占用率 4、%MEM:内存占用率 5、VSZ: 虚拟内存使用量,单位KB 6、RSS: 占用的固定内存量,单位KB 7、TTY: 所在终端 8、STAT:进程状态 9、START: 进程被启动的时间 10、TIME: 实际使用CPU的时间 11、COMMEND: 命令名称和参数
4. top コマンドは、プロセス アクティビティとシステム負荷情報を動的に監視するために使用されます。
top コマンドは非常に強力で、システムの運用とメンテナンスのステータスを動的に表示できます。
1. top
[root@mycentos ~]# top top - 13:45:38 up 267 days, 14:36, 1 user, load average: 0.01, 0.06, 0.05 Tasks: 107 total, 1 running, 106 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.3 us, 1.3 sy, 0.0 ni, 97.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1881820 total, 92160 free, 631276 used, 1158384 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1037740 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 20797 root 10 -10 148748 20952 6844 S 2.0 1.1 191:48.06 AliYunDun 6728 redis 20 0 143200 2684 1268 S 0.3 0.1 17:55.69 redis-server 11156 rabbitmq 20 0 1820368 74484 2644 S 0.3 4.0 106:56.41 beam.smp 29954 polkitd 20 0 52812 2340 700 S 0.3 0.1 40:13.73 redis-server 1 root 20 0 191120 3588 2044 S 0.0 0.2 26:00.01 systemd 备注: top 命令执行结果的前5行为系统整体的统计信息 1、第1行:系统时间、运行时间、登录终端数量、系统负载(3个数值分别表示: 1分钟,5分钟,15分钟内的平均负载值,数值越小意味着负载越低)。 2、第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。 3、第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、 空闲的资源百分比。(这一行中的数据均为 cpu 数据并以百分比格式显示, 比如:"97.3 id"表示有 97.3%的CPU处理器资源处于空闲) 4、第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。 5、第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
5. サービスのプロセス ID の表示
[root@mycentos ~]# pidof mysqld 27748 备注: pidof 服务名称 pidof 命令用于查询某个指定服务进程的PID 值。 每个进程的进程号(PID)是唯一的, 因此可以通过PID来区分不同的进程。
以上がLinuxでプロセスが何をしているかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。