Linux基礎:目錄名稱含義,監測程序

Linux 文件系統

常見Linux目錄名稱:

目錄 用途
/ 虛擬目錄的根目錄。通常不會在這裏存儲文件
/bin 二進制目錄,存放許多用戶級的GUN工具
/boot 啓動目錄,存放啓動文件
/dev 設備目錄,Linux在這裏創建設備節點
/etc 系統配置文件目錄
/home 主目錄,Linux在這裏創建用戶目錄
/lib 庫目錄,存放系統和應用程序的庫文件
/media 媒體目錄,可移動媒體設備的常用掛載點
/mnt 掛載目錄,另一個可移動媒體設備的常用掛載點
/opt 可選目錄,常用於存放第三方軟件包和數據文件
/proc 進程目錄,存放現有硬件及當前進程的相關信息
/root root用戶的主目錄
/sbin 系統二進制目錄,存放許多GUN管理員級工具
/run 運行目錄,存放系統運作時的運行時數據
/srv 服務目錄,存放本地服務的相關文件
/sys 系統目錄,存放系統硬件信息的相關文件
/tmp 臨時目錄,可以在該目錄中創建和刪除臨時工作文件
/usr 用戶二進制目錄,大量用戶級的GUN工具和數據文件都存儲在這裏
/var 可變目錄,用以存放經常變化的文件,比如日誌文件

常見的目錄名均基於文件系統層級標準(filesystem hierarchy stanard, FHS)。FHS偶爾會進行更新,可能有些Linux發行版人在使用舊的FHS標準。最新的FHS標準可以訪問其官方主頁:
http://www.pathname.com/fhs

ps 命令查看進程

當程序運行在系統上時,稱之爲進程(process)。要監測這些進程,就需要熟悉ps命令的用法。

默認情況下,ps命令只會顯示運行在當前控制檯下的屬於當前用戶的進程:

$ ps
  PID TTY          TIME CMD
 4763 pts/0    00:00:00 bash
 4782 pts/0    00:00:00 ps
$ 

在這裏,當前用戶只運行了bash shell(注意,shell也只是運行在系統上的另一個進程而已),以及ps命令本身。

Linux系統中使用的GNU ps命令支持3種不同類型的命令行參數:

  • Unix風格的參數,前面加單破折線
  • BSD風格的參數,前面不加破折線
  • GNU風格的長參數,前面加雙破折線

Unix風格的參數

Unix風格的參數是從貝爾實驗室開發的AT&T Unix系統上原有的ps命令繼承下來的。
Unix風格的ps命令參數:

參數 描述
-A 顯示所有進程
-N 顯示與指示參數不符的所有進程
-a 顯示除控制進程(session leader)和無終端進程外的所有進程
-d 顯示除控制進程外的所有進程
-e 顯示所有進程。應該和-A是一樣的
-C cmdlist 顯示包含在cmdlist列表中的進程
-G grplist 顯示組ID在grplist列表中的進程
-U userlist 顯示屬主的用戶ID在userlist列表中的進程
-g grplist 顯示會話或組ID在grplist列表中的進程
-p pidlist 顯示PID在pidlist列表中的進程
-s sesslist 顯示會話ID在sesslist列表中的進程
-t ttylist 顯示終端ID在ttylist列表中的進程
-u userlist 顯示有效用戶ID在userlist列表中的進程
-F 顯示更多額外輸出(相對-f參數而言)
-O format 顯示默認的輸出列以及format列表指定的特定列
-M 顯示進程的安全信息
-c 顯示進程的額外調度器信息
-f 顯示完整格式的輸出
-j 顯示任務信息
-l 顯示長列表
-o format 僅顯示由format指定的列
-y 不要顯示進程標記(process flag,表名進程狀態的標記)
-Z 顯示安全標籤(SELinux的security context)信息
-H 用層級格式來顯示進程(樹狀,用來顯示父進程)
-n namelist 定義了WCHAN列顯示的值
-w 採用寬輸出模式,不限寬度顯示
-L 顯示進程中的線程
-V 顯示ps命令的版本號

命令參數列出了很多,但是不一定全。使用ps命令的關鍵不在於記住多少可用的參數。而是隻要記住最有用的一些參數組合就好了。

ps -ef
查看系統上運行的所有進程:

$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 18:23 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0 18:23 ?        00:00:00 [kthreadd]
root         3     2  0 18:23 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 18:23 ?        00:00:00 [kworker/0:0H]
root         6     2  0 18:23 ?        00:00:00 [kworker/u2:0]
root         7     2  0 18:23 ?        00:00:00 [migration/0]
root         8     2  0 18:23 ?        00:00:00 [rcu_bh]
root         9     2  0 18:23 ?        00:00:00 [rcu_sched]
root        10     2  0 18:23 ?        00:00:00 [lru-add-drain]

......

root      4250     1  0 18:23 ?        00:00:00 /usr/sbin/hypervkvpd -n
root      4251     1  0 18:23 ?        00:00:00 /usr/sbin/sshd -D
root      4253     1  0 18:23 ?        00:00:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4254     1  0 18:23 ?        00:00:00 /usr/sbin/rsyslogd -n
root      4515     1  0 18:23 ?        00:00:00 /usr/libexec/postfix/master -w
postfix   4532  4515  0 18:24 ?        00:00:00 qmgr -l -t unix -u
root      4569  4251  0 18:24 ?        00:00:00 sshd: root@pts/0
root      4763  4569  0 18:24 pts/0    00:00:00 -bash
postfix   4931  4515  0 20:04 ?        00:00:00 pickup -l -t unix -u
root      4938     2  0 20:31 ?        00:00:00 [kworker/0:3]
root      4944     2  0 20:46 ?        00:00:00 [kworker/0:2]
root      4947     2  0 20:51 ?        00:00:00 [kworker/0:0]
root      4949  4763  0 20:53 pts/0    00:00:00 ps -ef
$ 

每列的信息說明:

  • UID:啓動這些進程的用戶
  • PID:進程的進程ID
  • PPID:父進程的進程號(如果該進程是由另一個進程啓動的)
  • C:進程生命週期中的CPU利用率
  • STIME:進程啓動時的系統時間
  • TTY:進程啓動時的終端設備
  • TIME:運行進程需要的累積CPU時間
  • CMD:啓動的程序名稱

ps -el
ps -ef 最常用,而-l參數可以顯示其他額外的信息,也可以ps -efl把兩部分的信息都顯示出來。
使用-l參數,會產生一個長格式輸出:

$ ps -el
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 32005 ep_pol ?        00:00:01 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:00 ksoftirqd/0
1 S     0     5     2  0  60 -20 -     0 worker ?        00:00:00 kworker/0:0H
1 S     0     6     2  0  80   0 -     0 worker ?        00:00:00 kworker/u2:0
1 S     0     7     2  0 -40   - -     0 smpboo ?        00:00:00 migration/0
1 S     0     8     2  0  80   0 -     0 rcu_gp ?        00:00:00 rcu_bh
1 R     0     9     2  0  80   0 -     0 -      ?        00:00:00 rcu_sched
1 S     0    10     2  0  60 -20 -     0 rescue ?        00:00:00 lru-add-drain

......

4 S     0  4250     1  0  80   0 - 10025 poll_s ?        00:00:00 hypervkvpd
4 S     0  4251     1  0  80   0 - 28215 poll_s ?        00:00:00 sshd
4 S     0  4253     1  0  80   0 - 143481 poll_s ?       00:00:02 tuned
4 S     0  4254     1  0  80   0 - 55687 poll_s ?        00:00:00 rsyslogd
5 S     0  4515     1  0  80   0 - 22412 ep_pol ?        00:00:00 master
4 S    89  4532  4515  0  80   0 - 22455 ep_pol ?        00:00:00 qmgr
4 S     0  4569  4251  0  80   0 - 39183 poll_s ?        00:00:00 sshd
4 S     0  4763  4569  0  80   0 - 28859 do_wai pts/0    00:00:00 bash
4 S    89  4931  4515  0  80   0 - 22438 ep_pol ?        00:00:00 pickup
1 S     0  4972     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:0
1 S     0  4973     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:3
1 S     0  4974     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:1
1 R     0  4977     2  0  80   0 -     0 -      ?        00:00:00 kworker/0:2
0 R     0  4979  4763  0  80   0 - 38309 -      pts/0    00:00:00 ps
$ ^

每列的信息說明:

  • F:內核分配給進程的系統標記
  • S:進程的狀態
    • O代表正在運行
    • S代表正在休眠
    • R代表可運行,正等待運行
    • Z代表僵化,進程已結束但父進程已不存在
    • T代表停止
  • PRI:進程的優先級(越大表示優先級越低)
  • NI:謙讓度值用來參與決定優先級
  • ADDR:進程的內存地址
  • SZ:假如進程被換出,所需交換空間的大致大小
  • WCHAN:進程休眠的內核函數的地址

BSD風格的參數

伯克利軟件發行版(Berkeley software distribution, BSD)是加州大學伯克利分校開發的一個Unix版本。
BSD風格的ps命令參數:

參數 描述
T 顯示跟當前終端關聯的所有進程
a 顯示跟任意終端關聯的所有進程
g 顯示所有的進程,包括控制進程
r 僅顯示運行中的進程
x 顯示所有的進程,甚至包括未分配任何終端的進程
U userlist 顯示歸userlist列表中某用戶ID所擁有的進程
p pidlist 顯示PID在pidlist列表中的進程
t ttylist 顯示所關聯的終端在ttylist列表中的進程
O format 除了默認輸出的列之外,還輸出由format指定的列
X 按過去的Linux i386寄存器格式顯示
Z 將安全信息添加到輸出中。效果和-Z參數差不多
j 顯示任務信息
l 採用長模式
o format 僅顯示由format指定的列
s 採用信號格式顯示
u 採用基於用戶的格式顯示
v 採用虛擬內存格式顯示
N namelist 定義在WCHAN列中使用的值
O order 定義顯示信息列的順序
S 將數值信息從子進程加到父進程上,比如CPU和內存的使用情況
c 顯示真實的命令名稱(用以啓動進程的程序名稱)
e 顯示命令使用的環境變量
f 用分層格式來顯示進程、表明哪些進程啓動了哪些進程
h 不顯示頭信息
k sort 指定用以將輸出排序的列
n 和WCHAN信息一起顯示出來,用數值來表示用戶ID和組ID
w 爲較寬屏幕顯示寬輸出
H 將線程按進程來顯示
m 在進程後顯示線程
L 列出所有格式指定符
V 顯示ps命令的版本號

Unix和BSD類型的參數有很多是重複的,大多數情況下,選擇自己重用的格式的參數即可。
ps aux
這個是BSD風格的顯示所有進程的命令,效果類似於ps -ef,主要是展示風格不同,輸出的列也有一些區別。
在使用BSD參數時,ps命令會自動改變輸出以模仿BSD格式:

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 128000  6540 ?        Ss   09:19   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    09:19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    09:19   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   09:19   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    09:19   0:00 [kworker/u2:0]
root         7  0.0  0.0      0     0 ?        S    09:19   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    09:19   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    09:19   0:00 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   09:19   0:00 [lru-add-drain]

......

root      4256  0.0  0.0  40100  1540 ?        Ss   09:19   0:00 /usr/sbin/hypervkvpd -n
root      4258  0.0  0.2 112860  4296 ?        Ss   09:19   0:00 /usr/sbin/sshd -D
root      4259  0.0  0.4 222748  7800 ?        Ssl  09:19   0:00 /usr/sbin/rsyslogd -n
root      4261  0.0  0.9 573924 17144 ?        Ssl  09:19   0:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4503  0.0  0.1  89648  2100 ?        Ss   09:19   0:00 /usr/libexec/postfix/master -w
postfix   4516  0.0  0.2  89752  4068 ?        S    09:19   0:00 pickup -l -t unix -u
postfix   4517  0.0  0.2  89820  4096 ?        S    09:19   0:00 qmgr -l -t unix -u
root      4770  0.0  0.3 156732  5524 ?        Ss   09:28   0:00 sshd: root@pts/0
root      4774  0.0  0.1 115436  2068 pts/0    Ss   09:28   0:00 -bash
root      4829  0.0  0.0      0     0 ?        S    09:35   0:00 [kworker/0:3]
root      4887  0.0  0.0      0     0 ?        S    09:40   0:00 [kworker/0:1]
root      4901  0.0  0.0      0     0 ?        R    09:45   0:00 [kworker/0:0]
root      4903  0.0  0.1 155360  1884 pts/0    R+   09:48   0:00 ps aux
$ 

每列的信息說明:

  • VSZ:進程在內存中的大小,以千字節(KB)爲單位
  • RSS:進程在未喚出時佔用的物理內存
  • STAT:代表當前進程狀態的雙字符狀態碼。

BSD風格表示的進程狀態碼更詳細。雙字符碼能比Unix風格輸出的單字符狀態碼更清楚地表示進程的當前狀態。
第一個字符采用了Unix分格S列相同的值,表明休眠(S)、運行(O)還是等待(R)。
第二個值進一步說明進程的狀態:

  • <:該進程運行在高優先級上
  • N:該進程運行在低優先級上
  • L:該進程有頁面鎖定在內存中
  • s:該進程是控制進程
  • l:該進程是多線程的
  • +:該進程運行在前臺

GNU長參數

最後,GNU開發人員在最近改進過的ps命令中加入了另外一些參數。其中一些複製了現有的Unix或BSD類型的參數,而另一些則提供了新功能。
GNU風格的ps命令參數:

參數 描述
--deselect 顯示所有進程,除了命令行中列出的進程
--Group grplist 顯示組ID在grplist列表中的進程
--User userlist 顯示用戶ID在userlist列表中的進程
--group grplist 顯示有效組ID在grplist列表中的進程
--pid pidlist 顯示PID在pidlist列表中的進程
--ppid pidlist 顯示父PID在pidlist列表中的進程
--sid sidlist 顯示會話ID在sidlist列表中的進程
--tty ttylist 顯示終端設備號在ttylist列表中的進程
--user userlist 顯示有效用戶ID在userlist列表中的進程
--format format 僅顯示由format指定的列
--context 顯示額外的安全信息
--cols n 將屏幕寬度設置爲n列
--columns n 將屏幕寬度設置爲n列
--cumulative 包含已停止的子進程的信息
--forest 用層級結構顯示出進程和父進程之間的關係
--headers 在每頁輸出是顯示列的頭
--no-headers 不顯示列的頭
--lines n 將屏幕高度設爲n行
--rows n 將屏幕高度設爲n排
--sort order 指定將輸出按哪列排序
--width n 將屏幕寬度設爲n列
--help 顯示幫助信息
--info 顯示調試信息
--version 顯示ps命令的版本號

部分GNU長參數可以和Unix或BSD風格的參數混用來定製輸出。

--forest參數 顯示進程的層級信息
這麼多參數中,--forest是一個很好的功能。它會顯示進程的層級信息,並用ASCII字符繪出好看的效果:

$ ps -ef --forest
UID        PID  PPID  C STIME TTY          TIME CMD
root         2     0  0 09:19 ?        00:00:00 [kthreadd]
root         3     2  0 09:19 ?        00:00:00  \_ [ksoftirqd/0]

......

root      4256     1  0 09:19 ?        00:00:00 /usr/sbin/hypervkvpd -n
root      4258     1  0 09:19 ?        00:00:00 /usr/sbin/sshd -D
root      4770  4258  0 09:28 ?        00:00:00  \_ sshd: root@pts/0
root      4774  4770  0 09:28 pts/0    00:00:00      \_ -bash
root      5001  4774  0 11:12 pts/0    00:00:00          \_ ps -ef --forest
root      4259     1  0 09:19 ?        00:00:00 /usr/sbin/rsyslogd -n
root      4261     1  0 09:19 ?        00:00:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4503     1  0 09:19 ?        00:00:00 /usr/libexec/postfix/master -w
postfix   4517  4503  0 09:19 ?        00:00:00  \_ qmgr -l -t unix -u
postfix   4958  4503  0 11:00 ?        00:00:00  \_ pickup -l -t unix -u
$ 

Unix風格的-H參數也有同樣的功能,但是效果沒有這個好:

$ ps -efH
UID        PID  PPID  C STIME TTY          TIME CMD
root         2     0  0 09:19 ?        00:00:00 [kthreadd]
root         3     2  0 09:19 ?        00:00:00   [ksoftirqd/0]

......

root      4256     1  0 09:19 ?        00:00:00   /usr/sbin/hypervkvpd -n
root      4258     1  0 09:19 ?        00:00:00   /usr/sbin/sshd -D
root      4770  4258  0 09:28 ?        00:00:00     sshd: root@pts/0
root      4774  4770  0 09:28 pts/0    00:00:00       -bash
root      5002  4774  0 11:13 pts/0    00:00:00         ps -efH
root      4259     1  0 09:19 ?        00:00:00   /usr/sbin/rsyslogd -n
root      4261     1  0 09:19 ?        00:00:01   /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4503     1  0 09:19 ?        00:00:00   /usr/libexec/postfix/master -w
postfix   4517  4503  0 09:19 ?        00:00:00     qmgr -l -t unix -u
postfix   4958  4503  0 11:00 ?        00:00:00     pickup -l -t unix -u
$ 

BSD風格的f參數也是這個功能,效果和--forest一樣。

top 命令實時監測進程

top命令和ps命令相似,都能夠顯示進程信息,並且是實時的:

$ top
top - 12:01:28 up  2:41,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  97 total,   2 running,  95 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1816668 total,   335380 free,  1325796 used,   155492 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   321636 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                
 5028 root      20   0  161880   2216   1572 R  0.3  0.1   0:00.06 top                                                                                    
    1 root      20   0  128000   6544   4136 S  0.0  0.4   0:01.12 systemd                                                                                
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                               
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.03 ksoftirqd/0                                                                            
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                           
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.03 kworker/u2:0                                                                           
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                            
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                 
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.35 rcu_sched                                                                              
   10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain                                                                          
   11 root      rt   0       0      0      0 S  0.0  0.0   0:00.11 watchdog/0                                                                             
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                              
   14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                                                  
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd                                                                             
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                                                              
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                                                            
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                 
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                 
   20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                 
   21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                                                
   22 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md                                                                                     
   23 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 edac-poller                                                                            
   24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 watchdogd                                                                              
   30 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0                                                                                
   31 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd                                                                                   
   32 root      39  19       0      0      0 S  0.0  0.0   0:00.06 khugepaged                                                                             
   33 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto                                                                                 
   41 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld       

輸出的第一部分顯示的是系統的概況:

  • 第一行顯示了當前時間、系統的運行時間、登錄的用戶數以及系統的平均負載。
    • 平均負載有3個值:最近1分鐘的、最近5分鐘的、最近15分鐘的平均負載
  • 第二行顯示了進程概要信息。這裏將進程叫做任務(task),各種狀態進程的數量:
    • total:總數
    • running:運行
    • sleeping:休眠
    • stopped:停止
    • zombie:僵化(僵化狀態是指進程完成了,但父進程沒有響應)
  • 第三行顯示了CPU的概要信息,將CPU利用率分成幾類輸出:
    • us【user space】— 用戶空間佔用CPU的百分比。
    • sy【sysctl】— 內核空間佔用CPU的百分比。
    • ni【】— 改變過優先級的進程佔用CPU的百分比
    • id【idolt】— 空閒CPU百分比
    • wa【wait】— IO等待佔用CPU的百分比
    • hi【Hardware IRQ】— 硬中斷佔用CPU的百分比
    • si【Software Interrupts】— 軟中斷佔用CPU的百分比
  • 第四行是系統的物理內存狀態:
    • total — 物理內存總量
    • free — 空閒內存總量
    • used — 使用中的內存總量
    • buff/cache — 用作內核緩存的內存量
  • 第五行是系統的交換空間狀態:
    • total — 交換區總量
    • free — 空閒交換區總量
    • used — 使用的交換區總量
    • avail Mem — 緩衝的交換區總量。內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋,該數值即爲這些內容已存在於內存中的交換區的大小,相應的內存再次被換出時可不必再對交換區寫入。
  • 最後一部分顯示了當前運行中的進程的詳細列表,有些列和ps命令的輸出類似:
    • PID:進程的ID
    • USER:進程屬主的名字
    • PR:進程的優先級
    • NI:進程的謙讓度值(nice值)
    • VIRT:進程佔用的虛擬內存總量
    • RES:進程佔用的物理內存總量
    • SHR:進程和其他進程共享的內存總量
    • S:進程的狀態(D可中斷的休眠狀態,R運行,S休眠,T跟蹤狀態或停止狀態,Z僵化)
    • %CPU:進程使用的CPU時間比例
    • %MEM:進程使用的內存佔可用內存的比例
    • TIME+:自進程啓動到目前爲止的CPU時間總量
    • COMMAND:進程所對應的命令行名稱,也就是啓動的程序名

默認情況下,top啓動後按%CPU排序,可按f指定其他列。輪詢時間默認是3.0秒,可按d修改。按q是退出。其他就不列舉了。

結束進程

在Linux中,進程之間通過信號來通信。大多數編寫完善的程序都能接收和處理標準Unix進程信號。
Linux進程信號:

信號 名稱 描述
1 HUP 掛起
2 INT 中斷
3 QUIT 結束運行
9 KILL 無條件終止
11 SEGV 段錯誤
15 TERM 儘可能終止
17 STOP 無條件停止運行,但不終止
18 TSTP 停止或暫停,但繼續在後臺運行
19 CONT 在STOP或TSTP之後恢復執行

kill命令
kill命令可通過進程ID(PID)給進程發信號。默認發送TERM信號。因爲只能使用PID來指定,而不能用命令名,所以有時候不是很好用。
要發送信號,你還必須是該進程的屬主或者是root。
kill命令不會有任何輸出,要檢查kill命令是由有效,可以再運行ps或top命令。

killall命令
killall命令支持通過進程名而不是PID來結束進程。killall命令也支持通配符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章