在Linux系統中,有時我們需要查看某個進程的相關信息,而pid是唯一標識一個進程的值。下面從多個方面來講解如何通過pid查看進程。
一、根據pid查看進程名
我們可以通過命令ps -p pid
來查看指定pid的進程名。
$ ps -p 12345
PID TTY TIME CMD
12345 pts/1 00:00:00 bash
其中,PID
表示進程的pid,CMD
表示進程名。
二、根據pid查看進程啟動時間
使用ps -p pid -o lstart
命令來查看指定pid的進程啟動時間。
$ ps -p 12345 -o lstart
STARTED
Tue Oct 26 15:25:51 2021
其中,STARTED
表示進程的啟動時間。
三、根據pid查看進程命令
我們可以使用cat /proc/pid/cmdline
命令來查看指定pid的進程完整命令。
$ cat /proc/12345/cmdline
bash
需要注意的是,這裡得到的命令不一定是真正執行的命令,可能是由bash解釋器執行的命令。
四、根據pid查看進程詳情
我們可以使用ps -fp pid
命令來查看指定pid的進程詳細信息。
$ ps -fp 12345
UID PID PPID C STIME TTY TIME CMD
user 12345 12344 0 15:25 pts/1 00:00:00 bash
其中,UID
表示進程的所有者,PPID
表示進程的父進程pid,C
表示進程使用的CPU百分比,STIME
表示進程的啟動時間,TTY
表示進程的終端,TIME
表示進程已經使用的CPU時間,CMD
表示進程名。
五、查看pid的父進程
我們可以使用ps -p pid -o ppid
命令來查看指定pid的父進程pid。
$ ps -p 12345 -o ppid
PPID
12344
需要注意的是,進程的ppid不一定是直接父進程的pid,可能是由其他進程繼承而來,因此需要進一步查看。
六、根據pid查看進程埠
我們可以使用netstat -anp | grep pid
命令來查看指定pid使用的埠。
$ netstat -anp | grep 12345
tcp6 0 0 :::8000 :::* LISTEN 12345/bash
其中,TCP/UDP
表示傳輸協議,LOCAL_ADDRESS:PORT
表示本地地址和埠,REMOTE_ADDRESS:PORT
表示遠程地址和埠,STATE
表示連接狀態,PID/Program_name
表示進程的pid和程序名。
七、根據pid查看進程命令路徑
我們可以使用which $(ps -p pid -o cmd=)
命令來查看指定pid的進程命令路徑。
$ which $(ps -p 12345 -o cmd=)
/bin/bash
其中,which
命令可以在環境變數$PATH
指定的路徑中搜索命令,並返回命令的路徑。
八、根據pid查看進程信息
我們可以使用cat /proc/pid/status
命令來查看指定pid的進程詳細信息。
$ cat /proc/12345/status
Name: bash
Umask: 0002
State: S (sleeping)
Tgid: 12345
Ngid: 0
Pid: 12345
PPid: 12344
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 256
Groups: 16 27 30 46 121 131 1000
NStgid: 12345
NSpid: 12345
NSpgid: 12345
NSsid: 2671
VmPeak: 336652 kB
VmSize: 336652 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1172 kB
VmRSS: 636 kB
RssAnon: 4136 kB
RssFile: 10576 kB
RssShmem: 0 kB
VmData: 114620 kB
VmStk: 132 kB
VmExe: 936 kB
VmLib: 25684 kB
VmPTE: 1148 kB
VmSwap: 0 kB
其中,Name
表示進程的名字,State
表示進程的狀態,Tgid
表示線程組ID(如果是多線程進程會有多個線程,不同線程的pid相同,但是tgid不同),Pid
表示進程的pid,PPid
表示進程的父進程pid,Uid
表示進程所有者的UID,Groups
表示所屬組的GID,VmPeak
表示虛存峰值,VmSize
表示進程使用的虛擬內存空間大小,VmHWM
表示進程使用的物理內存峰值。
九、根據pid查看進程內存佔用
我們可以使用ps -p pid -o rss
命令來查看指定pid的內存佔用。
$ ps -p 12345 -o rss
RSS
6868
其中,RSS
表示佔用的物理內存大小,單位為KB。
十、Linux根據pid查看進程
除了以上介紹的命令,我們還可以使用其他命令來查看進程,比如top
、htop
等。這些工具可以動態展示當前系統的進程情況,提供更加豐富的信息,方便我們進行進程管理。
原創文章,作者:XFCED,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/369124.html