欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          linux下查詢進程的命令是什么

          查詢進程的命令:1、ps命令,能查看系統(tǒng)中所有運行進程的詳細信息,語法“ps aux”或“ps -le”;2、top命令,能實時監(jiān)聽進程運行狀態(tài),語法“top 選項”;3、pstree命令,能查看進程樹,以樹形結構顯示程序和進程之間的關系。

          linux下查詢進程的命令是什么

          本教程操作環(huán)境:CentOS 6系統(tǒng)、Dell G3電腦。

          進程是正在執(zhí)行的一個程序或命令,每個進程都是一個運行的實體,都有自己的地址空間,并占用一定的系統(tǒng)資源。

          無論是 Linux 系統(tǒng)管理員還是普通用戶,監(jiān)視系統(tǒng)進程的運行情況并適時終止一些失控的進程,是每天的例行事務。

          Linux 中雖然使用命令進行進程管理,但是進程管理的主要目的是一樣的,即查看系統(tǒng)中運行的程序和進程、判斷服務器的健康狀態(tài)和強制中止不需要的進程。

          那么linux下查詢進程命令是什么?下面本篇文章給大家分享一些linux查詢進程的命令。

          Linux ps命令:查看正在運行的進程

          ps 命令是最常用的監(jiān)控進程的命令,通過此命令可以查看系統(tǒng)中所有運行進程的詳細信息。

          ps 命令的基本格式如下:

          [root@localhost ~]# ps aux #查看系統(tǒng)中所有的進程,使用 BS 操作系統(tǒng)格式 [root@localhost ~]# ps -le #查看系統(tǒng)中所有的進程,使用 Linux 標準命令格式

          選項:

          • a:顯示一個終端的所有進程,除會話引線外;

          • u:顯示進程的歸屬用戶及內(nèi)存的使用情況;

          • x:顯示沒有控制終端的進程;

          • -l:長格式顯示更加詳細的信息;

          • -e:顯示所有進程;

          可以看到,ps 命令有些與眾不同,它的部分選項不能加入"-",比如命令"ps aux",其中"aux"是選項,但是前面不能帶“-”。

          大家如果執(zhí)行 "man ps" 命令,則會發(fā)現(xiàn) ps 命令的幫助為了適應不同的類 UNIX 系統(tǒng),可用格式非常多,不方便記憶。所以,我建議大家記憶幾個固定選項即可。比如:

          • "ps aux" 可以查看系統(tǒng)中所有的進程;

          • "ps -le" 可以查看系統(tǒng)中所有的進程,而且還能看到進程的父進程的 PID 和進程優(yōu)先級;

          • "ps -l" 只能看到當前 Shell 產(chǎn)生的進程;

          有這三個命令就足夠了,下面分別來查看。

          【例 1】

          [root@localhost ~]# ps aux
          #查看系統(tǒng)中所有的進程 USER PID %CPU %MEM  VSZ  RSS   TTY STAT START TIME COMMAND root   1  0.0  0.2 2872 1416   ?   Ss   Jun04 0:02 /sbin/init root   2  0.0  0.0    0    0   ?    S   Jun04 0:00 [kthreadd] root   3  0.0  0.0    0    0   ?    S   Jun04 0:00 [migration/0] root   4  0.0  0.0    0    0   ?    S   Jun04 0:00 [ksoftirqd/0] …省略部分輸出…

          表 1 中羅列出了以上輸出信息中各列的具體含義。

          表 1 ps命令輸出信息含義
          表頭 含義
          USER 該進程是由哪個用戶產(chǎn)生的。
          PID 進程的 ID。
          %CPU 該進程占用 CPU 資源的百分比,占用的百分比越高,進程越耗費資源。
          %MEM 該進程占用物理內(nèi)存的百分比,占用的百分比越高,進程越耗費資源。
          VSZ 該進程占用虛擬內(nèi)存的大小,單位為 KB。
          RSS 該進程占用實際物理內(nèi)存的大小,單位為 KB。
          TTY 該進程是在哪個終端運行的。其中,tty1 ~ tty7 代表本地控制臺終端(可以通過 Alt+F1 ~ F7 快捷鍵切換不同的終端),tty1~tty6 是本地的字符界面終端,tty7 是圖形終端。pts/0 ~ 255 代表虛擬終端,一般是遠程連接的終端,第一個遠程連接占用 pts/0,第二個遠程連接占用 pts/1,依次増長。
          STAT 進程狀態(tài)。常見的狀態(tài)有以下幾種:

          1. -D:不可被喚醒的睡眠狀態(tài),通常用于 I/O 情況。
          2. -R:該進程正在運行。
          3. -S:該進程處于睡眠狀態(tài),可被喚醒。
          4. -T:停止狀態(tài),可能是在后臺暫?;蜻M程處于除錯狀態(tài)。
          5. -W:內(nèi)存交互狀態(tài)(從 2.6 內(nèi)核開始無效)。
          6. -X:死掉的進程(應該不會出現(xiàn))。
          7. -Z:僵尸進程。進程已經(jīng)中止,但是部分程序還在內(nèi)存當中。
          8. -<:高優(yōu)先級(以下狀態(tài)在 BSD 格式中出現(xiàn))。
          9. -N:低優(yōu)先級。
          10. -L:被鎖入內(nèi)存。
          11. -s:包含子進程。
          12. -l:多線程(小寫 L)。
          13. -+:位于后臺。
          START 該進程的啟動時間。
          TIME 該進程占用 CPU 的運算時間,注意不是系統(tǒng)時間。
          COMMAND 產(chǎn)生此進程的命令名。

          【例 2】"ps aux"命令可以看到系統(tǒng)中所有的進程,"ps -le"命令也能看到系統(tǒng)中所有的進程。由于 "-l" 選項的作用,所以 "ps -le" 命令能夠看到更加詳細的信息,比如父進程的 PID、優(yōu)先級等。但是這兩個命令的基本作用是一致的,掌握其中一個就足夠了。

          [root@localhost ~]# ps -le F S UID PID PPID C  PRI Nl ADDR  SZ WCHAN TTY      TIME  CMD 4 S   0   1    0 0  80   0 -    718 -     ?    00:00:02  init 1 S   0   2    0 0  80   0 -      0 -     ?    00:00:00  kthreadd 1 S   0   3    2 0 -40   - -      0 -     ?    00:00:00  migration/0 1 S   0   4    2 0  80   0 -      0 -     ?    00:00:00  ksoflirqd/0 1 S   0   5    2 0 -40   - -      0 -     ?    00:00:00  migration/0 …省略部分輸出…

          表 2 羅列出以上輸出信息中各列的含義。

          表 2 ps -le 命令輸出信息
          表頭 含義
          F 進程標志,說明進程的權限,常見的標志有兩個:

          • 1:進程可以被復制,但是不能被執(zhí)行;
          • 4:進程使用超級用戶權限;
          S 進程狀態(tài)。具體的狀態(tài)和"psaux"命令中的 STAT 狀態(tài)一致;
          UID 運行此進程的用戶的 ID;
          PID 進程的 ID;
          PPID 父進程的 ID;
          C 該進程的 CPU 使用率,單位是百分比;
          PRI 進程的優(yōu)先級,數(shù)值越小,該進程的優(yōu)先級越高,越早被 CPU 執(zhí)行;
          NI 進程的優(yōu)先級,數(shù)值越小,該進程越早被執(zhí)行;
          ADDR 該進程在內(nèi)存的哪個位置;
          SZ 該進程占用多大內(nèi)存;
          WCHAN 該進程是否運行。"-"代表正在運行;
          TTY 該進程由哪個終端產(chǎn)生;
          TIME 該進程占用 CPU 的運算時間,注意不是系統(tǒng)時間;
          CMD 產(chǎn)生此進程的命令名;

          【例 3】如果不想看到所有的進程,只想查看一下當前登錄產(chǎn)生了哪些進程,那只需使用 "ps -l" 命令就足夠了:

          [root@localhost ~]# ps -l #查看當前登錄產(chǎn)生的進程 F S UID   PID  PPID C PRI NI ADDR SZ WCHAN TTY       TIME CMD 4 S 0   18618 18614 0  80  0 - 1681  -     pts/1 00:00:00 bash 4 R 0   18683 18618 4  80  0 - 1619  -     pts/1 00:00:00 ps

          可以看到,這次從 pts/1 虛擬終端登錄,只產(chǎn)生了兩個進程:一個是登錄之后生成的 Shell,也就是 bash;另一個是正在執(zhí)行的 ps 命令。

          Linux top命令:持續(xù)監(jiān)聽進程運行狀態(tài)

          ps 命令可以一次性給出當前系統(tǒng)中進程狀態(tài),但使用此方式得到的信息缺乏時效性,并且,如果管理員需要實時監(jiān)控進程運行情況,就必須不停地執(zhí)行 ps 命令,這顯然是缺乏效率的。

          為此,Linux 提供了 top 命令。top 命令可以動態(tài)地持續(xù)監(jiān)聽進程地運行狀態(tài),與此同時,該命令還提供了一個交互界面,用戶可以根據(jù)需要,人性化地定制自己的輸出,進而更清楚地了進程的運行狀態(tài)。

          top 命令的基本格式如下:

          [root@localhost ~]#top [選項]

          選項:

          • -d 秒數(shù):指定 top 命令每隔幾秒更新。默認是 3 秒;

          • -b:使用批處理模式輸出。一般和"-n"選項合用,用于把 top 命令重定向到文件中;

          • -n 次數(shù):指定 top 命令執(zhí)行的次數(shù)。一般和"-"選項合用;

          • -p 進程PID:僅查看指定 ID 的進程;

          • -s:使 top 命令在安全模式中運行,避免在交互模式中出現(xiàn)錯誤;

          • -u 用戶名:只監(jiān)聽某個用戶的進程;

          在 top 命令的顯示窗口中,還可以使用如下按鍵,進行一下交互操作:

          • ? 或 h:顯示交互模式的幫助;

          • P:按照 CPU 的使用率排序,默認就是此選項;

          • M:按照內(nèi)存的使用率排序;

          • N:按照 PID 排序;

          • T:按照 CPU 的累積運算時間排序,也就是按照 TIME+ 項排序;

          • k:按照 PID 給予某個進程一個信號。一般用于中止某個進程,信號 9 是強制中止的信號;

          • r:按照 PID 給某個進程重設優(yōu)先級(Nice)值;

          • q:退出 top 命令;

          我們看看 top 命令的執(zhí)行結果,如下:

          [root@localhost ~]# top top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 625344k total, 571504k used, 53840k free, 65800k buffers Swap: 524280k total, 0k used, 524280k free, 409280k cached PID   USER PR NI VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND 19002 root 20  0 2656 1068  856 R  0.3  0.2 0:01.87 top 1     root 20  0 2872 1416 1200 S  0.0  0.2 0:02.55 init 2     root 20  0    0    0    0 S  0.0  0.0 0:00.03 kthreadd 3     root RT  0    0    0    0 S  0.0  0.0 0:00.00 migration/0 4     root 20  0    0    0    0 S  0.0  0.0 0:00.15 ksoftirqd/0 5     root RT  0    0    0    0 S  0.0  0.0 0:00.00 migration/0 6     root RT  0    0    0    0 S  0.0  0.0 0:10.01 watchdog/0 7     root 20  0    0    0    0 S  0.0  0.0 0:05.01 events/0 8     root 20  0    0    0    0 S  0.0  0.0 0:00.00 cgroup 9     root 20  0    0    0    0 S  0.0  0.0 0:00.00 khelper 10    root 20  0    0    0    0 S  0.0  0.0 0:00.00 netns 11    root 20  0    0    0    0 S  0.0  0.0 0:00.00 async/mgr 12    root 20  0    0    0    0 S  0.0  0.0 0:00.00 pm 13    root 20  0    0    0    0 S  0.0  0.0 0:01.70 sync_supers 14    root 20  0    0    0    0 S  0.0  0.0 0:00.63 bdi-default 15    root 20  0    0    0    0 S  0.0  0.0 0:00.00 kintegrityd/0 16    root 20  0    0    0    0 S  0.0  0.0 0:02.52 kblockd/0 17    root 20  0    0    0    0 S  0.0  0.0 0:00.00 kacpid 18    root 20  0    0    0    0 S  0.0  0.0 0:00.00 kacpi_notify

          我們解釋一下命令的輸出。top 命令的輸出內(nèi)容是動態(tài)的,默認每隔 3 秒刷新一次。命令的輸出主要分為兩部分:

          • 第一部分是前五行,顯示的是整個系統(tǒng)的資源使用狀況,我們就是通過這些輸出來判斷服務器的資源使用狀態(tài)的;

          • 第二部分從第六行開始,顯示的是系統(tǒng)中進程的信息;

          Linux pstree命令:查看進程樹

          pstree 命令是以樹形結構顯示程序和進程之間的關系,此命令的基本格式如下:

          [root@localhost ~]# pstree [選項] [PID或用戶名]

          表 1 羅列出了 pstree 命令常用選項以及各自的含義。

          表 1 pstree命令常用選項及含義
          選項 含義
          -a 顯示啟動每個進程對應的完整指令,包括啟動進程的路徑、參數(shù)等。
          -c 不使用精簡法顯示進程信息,即顯示的進程中包含子進程和父進程。
          -n 根據(jù)進程 PID 號來排序輸出,默認是以程序名排序輸出的。
          -p 顯示進程的 PID。
          -u 顯示進程對應的用戶名稱。

          需要注意的是,在使用 pstree 命令時,如果不指定進程的 PID 號,也不指定用戶名稱,則會以 init 進程為根進程,顯示系統(tǒng)中所有程序和進程的信息;反之,若指定 PID 號或用戶名,則將以 PID 或指定命令為根進程,顯示 PID 或用戶對應的所有程序和進程。

          init 進程是系統(tǒng)啟動的第一個進程,進程的 PID 是 1,也是系統(tǒng)中所有進程的父進程。

          【例 1】

          [root@1ocalhost ~]# pstree init──┬──abrc-dump-oopa ├──abrtd ├──acpid ...省略部分輸出... ├──rayslogd───3*[{rsyslogrd}] #有3個rsyslogd進程存在 ├──sshd───sshd───bash───pstree #Pstree命令進程是在遠程連接中被執(zhí)行的 ├──udevd───2*[udevd] └──xinecd

          【例 2】如果想知道某個用戶都啟動了哪些進程,使用 pstree 命令可以很容易實現(xiàn),以 mysql 用戶為例:

          [root@1ocalhost ~]# pstree mysql mysqid---6*[{mysqid}]

          此輸出結果顯示了 mysql 用戶對應的進程為 mysqid,并且 mysqid 進程擁有 5 個子進程(外加 1 個父進程,共計 6 個進程)。

          Linux lsof命令:列出進程調(diào)用或打開的文件信息

          我們知道,通過 ps 命令可以查詢到系統(tǒng)中所有的進程,那么,是否可以進一步知道這個進程到底在調(diào)用哪些文件嗎?當然可以,使用 lsof 命令即可。

          lsof 命令,“l(fā)ist opened files”的縮寫,直譯過來,就是列舉系統(tǒng)中已經(jīng)被打開的文件。通過 lsof 命令,我們就可以根據(jù)文件找到對應的進程信息,也可以根據(jù)進程信息找到進程打開的文件。

          lsof 命令的基本格式如下:

          [root@localhost ~]# lsof [選項]

          此命令常用的選項及功能,如表 1 所示。

          表 1 lsof 命令常用選項及功能
          選項 功能
          -c 字符串 只列出以字符串開頭的進程打開的文件。
          +d 目錄名 列出某個目錄中所有被進程調(diào)用的文件。
          -u 用戶名 只列出某個用戶的進程打開的文件。
          -p pid 列出某個 PID 進程打開的文件。

          【例 1】

          [root@localhost ~]# lsof | more #查詢系統(tǒng)中所有進程調(diào)用的文件 COMMAND PID  USER  FD    TYPE  DEVICE  SIZE/OFF  NODE  NAME init               1      root    cwd  DIR    8,3       4096        2           / init               1      root    rtd    DIR    8,3       4096        2           / init               1      root    txt     REG   8,3       145180    130874 /sbin/init init               1      root    mem REG   8,3       142472    665291 /lib/ld-2.12.so init               1      root    mem REG   8,3       58704      655087 /lib/libnss_files-2.12.so …省略部分輸出…

          這個命令的輸出非常多。它會按照 PID,從 1 號進程開始列出系統(tǒng)中所有的進程正在調(diào)用的文件名。

          【例 2】

          [root@localhost ~]# lsof /sbin/init #查詢某個文件被哪個進程調(diào)用 COMMAND PID USER  FD  TYPE  DEVICE  SIZE/OFF  NODE    NAME init               1     root    txt  REG   8,3      145180     130874   /sbin/init

          lsof 命令也可以反過來查詢某個文件被哪個進程調(diào)用。這個例子就查詢到 /sbin/init 文件是被 init 進程調(diào)用的。

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號