根據pid查看進程

在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查看進程

除了以上介紹的命令,我們還可以使用其他命令來查看進程,比如tophtop等。這些工具可以動態展示當前系統的進程情況,提供更加豐富的信息,方便我們進行進程管理。

原創文章,作者:XFCED,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/369124.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XFCED的頭像XFCED
上一篇 2025-04-12 13:00
下一篇 2025-04-12 13:00

相關推薦

  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • 如何通過jstack工具列出假死的java進程

    假死的java進程是指在運行過程中出現了某些問題導致進程停止響應,此時無法通過正常的方式關閉或者重啟該進程。在這種情況下,我們可以藉助jstack工具來獲取該進程的進程號和線程號,…

    編程 2025-04-29
  • mysessioncontext 根據jessionid獲取session為空解決方法

    當我們在使用web應用程序開發時,mysessioncontext 根據jessionid獲取session為空是一個常見的錯誤。為了避免這個錯誤的發生,我們必須了解什麼是sess…

    編程 2025-04-28
  • 如何使用Java List根據某一欄位升序排序

    本文將詳細介紹在Java中如何使用List集合按照某一欄位進行升序排序。具體實現思路如下: 一、定義需要進行排序的Java對象 首先,我們需要定義一個Java對象,該對象包含多個字…

    編程 2025-04-27
  • Java中的殭屍進程簡介與解決方法

    本文將對Java中的殭屍進程進行詳細闡述,並給出幾種解決方法。 一、殭屍進程的概念 在操作系統中,進程是指正在執行的程序。當一個進程創建了一個子進程,而該子進程完成了任務卻沒有被父…

    編程 2025-04-27
  • 多線程和多進程的應用

    多線程和多進程是現代編程中常用的技術,可以提高程序的效率和性能。本文將從不同的角度對多線程和多進程進行詳細的介紹和應用。 一、多線程 vs 多進程 多線程和多進程都是為了實現程序並…

    編程 2025-04-27
  • Python多進程讀取數據

    本文將從多個方面詳細闡述在Python中如何通過多進程讀取數據,並給出完整的代碼示例。 一、多進程概述 在計算機科學中,進程是正在執行的程序實例。多進程是指計算機系統同時執行多個進…

    編程 2025-04-27
  • 進程a與進程b共享變數s1

    本文將從多個方面對進程a與進程b共享變數s1做詳細的闡述,並給出代碼示例。 一、定義全局變數s1 進程a與進程b共享變數s1,意味著s1是一個全局變數。在C語言中,可以使用關鍵字e…

    編程 2025-04-27
  • python多進程並行循環

    在大數據時代,我們通常需要處理大量的數據。處理大數據往往需要較長的時間,影響效率。Python提供了多線程、多進程等並行處理方式來提高數據處理效率。本文將主要講解python多進程…

    編程 2025-04-27
  • Python進程池共享內存用法介紹

    本文將從多個方面詳細闡述Python進程池共享內存的相關知識,包括如何使用進程池、進程池的實現原理、進程池中的共享內存管理等。本文內容將涵蓋: 一、進程池的使用 進程池是一種有效的…

    編程 2025-04-27

發表回復

登錄後才能評論