linux查看進程在做什麼的方法:1、ps命令,可以列出目前使用者的所有進程;2、top命令,可以即時顯示系統的進程情況;3、htop命令,是top的改進版,可以提供更多的互動功能;4、pstree指令,可以以樹狀結構顯示流程之間的關係;5、lsof指令,可以顯示目前系統中開啟的檔案和網路連線。
本文操作環境:linux 5.18.14系統、DELL G3電腦。
一、在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和進程的使用者。
總之,以上這些指令都可以用來檢視正在執行的進程,不同的指令適用於不同的場合。根據自己的需求選擇適合的指令即可。
二、每個行程狀態所表示的意義
1、R:執行
##表示程式正在運作或在允許佇列中等待。 2、S:中斷表示進程處於休眠中,當某個條件形成後或接收到訊號時,則脫離中斷的狀態。 3、D:不可中斷表示程式不回應系統非同步訊號,即使用 kill 指令也無法將其中斷。 4、Z:僵死表示進程已經終止,但進程描述子仍然存在,直到父進程呼叫 wait(4) 系統函數後將進程釋放。 5、T:停止表示進程收到停止訊號後停止運作。三、狀態
[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: 命令名称和参数
四、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行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
五、查看某個服務的進程ID
[root@mycentos ~]# pidof mysqld 27748 备注: pidof 服务名称 pidof 命令用于查询某个指定服务进程的PID 值。 每个进程的进程号(PID)是唯一的, 因此可以通过PID来区分不同的进程。
以上是linux怎麼查看進程在幹嘛的詳細內容。更多資訊請關注PHP中文網其他相關文章!