天天看點

linux常用程序及作業管理常用指令0 目錄1 程序查詢指令2 使用信号管理程序3 作業管理

0 目錄

文章目錄

  • 0 目錄
  • 1 程序查詢指令
    • 1.1 指令ps
    • 1.2 指令top
    • 1.3 指令htop
    • 1.4 指令glances
    • 1.5 指令vmstat
    • 1.6 指令dstat
  • 2 使用信号管理程序
    • 2.1 指令kill
    • 2.2 指令killall
  • 3 作業管理
    • 3.1 指令jobs
    • 3.2 指令fg
    • 3.3 指令bg

1 程序查詢指令

1.1 指令ps

指令ps,用于顯示目前時刻(非動态顯示,類似于快照)所有程序狀态

格式:

ps [options]

它的選項有3種風格,unix風格的選項必須加“-”;BSD風格的不能加“-”;長選項為“–”。

常用選項:

選項 意義
a 檢視所有與終端相關1的程序
x 檢視所有與終端無關的程序
u 以使用者劃分來顯示程序
-e 顯示所有程序,相當于ax
-f 顯示更完整(full)的格式
-F 幾乎同“-f”,多顯示了個别字段
-H 以層級結構(hierarchy,這裡指程序父子關系)顯示各程序
o或-o 自定義顯示指定字段

查詢結果各字段2:

字段 意義
PID 程序号
TTY 程序所運作在的終端
USER 運作程序的使用者
%CPU或C CPU占用比例
%MEM 記憶體占用比例
VSZ或VIRT 虛拟記憶體集(Virtual memory size)
RSS或RES 常駐記憶體集3(Resident Size)
SHR 共享記憶體大小
STAT或S 程序狀态4
START 開始運作的時間
TIME或TIME+ 程序累積占用CPU的時長
CMD或COMMAND 發起程序的指令
PR 優先級(priority)
PPID 父程序号

直接檢視效果:

[[email protected] ~]% ps
  PID TTY          TIME CMD
 2770 pts/1    00:00:00 bash
 2976 pts/1    00:00:00 ps 
           

使用常用選項組合的效果:

[[email protected] ~]% ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19352  1548 ?        Ss   16:07   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    16:07   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    16:07   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    16:07   0:00 [ksoftirqd/0]

……

root      2138  0.0  0.0   4064   540 tty2     Ss+  16:08   0:00 /sbin/mingetty /dev/tty2
root      2140  0.0  0.0   4064   540 tty3     Ss+  16:08   0:00 /sbin/mingetty /dev/tty3
root      2142  0.0  0.0   4064   544 tty4     Ss+  16:08   0:00 /sbin/mingetty /dev/tty4

……

# 可看到與終端無關的程序TTY字段為“?”
# COMMAND字段帶中括号的表示是核心發起的線程
           
[[email protected] ~]% ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 16:07 ?        00:00:02 /sbin/init
root         2     0  0 16:07 ?        00:00:00 [kthreadd]
root         3     2  0 16:07 ?        00:00:00 [migration/0]

……
           
[[email protected] ~]% ps -eFH

……
           
[[email protected] ~]% ps -eo pid,ni,priority,comm | head -5
  PID  NI PRI COMMAND
    1   0  20 init
    2   0  20 kthreadd
    3   - -100 migration/0
    4   0  20 ksoftirqd/0
[[email protected] ~]% ps axo pid,ni,priority,comm | head -5
  PID  NI PRI COMMAND
    1   0  20 init
    2   0  20 kthreadd
    3   - -100 migration/0
    4   0  20 ksoftirqd/0

# 使用“o”或“-o”選項指定顯示的字段,如pid、nice值、優先級、發起程序的指令。限于篇幅僅顯示前5行
           

1.2 指令top

指令top,用于動态地檢視目前系統上的程序資訊(類似windows任務管理器)。

檢視效果:

top - 10:47:23 up 30 min,  1 user,  load average: 0.06, 0.03, 0.05
Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1012080k total,   351680k used,   660400k free,    31760k buffers
Swap:  2031612k total,        0k used,  2031612k free,   120852k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                         
 2519 root      20   0 15032 1244  936 R  0.3  0.1   0:00.10 top                                                              
    1 root      20   0 19352 1540 1228 S  0.0  0.2   0:02.00 init                                                             
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                                                         
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.01 migration/0                                                      
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                      

	……
           

首部内容意義(按位置對應):

目前時間及終端運作時長 登陸至目前系統的使用者數 平均負載(load average)
程序總數 處于運作狀态的程序數 處于睡眠狀态的程序數 處于停止狀态的程序數 處于僵屍狀态的運作數
使用者(user)程序的CPU占用時間比例 核心程序的CPU占用時間比例 用于調整nice值的CPU占用時間比例 空閑(idle)時間比例 等待I/O完成所站CPU時間比例 處理硬中斷(hardware interrupt)所占CPU時間比例 處理軟中斷所占CPU時間比例 虛拟化程式所占CPU時間比例(被視為“偷走”stolen的時間)
記憶體總大小 記憶體已用大小 記憶體空閑大小 記憶體緩沖區大小
交換記憶體總大小 交換記憶體已用大小 交換記憶體空閑大小 交換記憶體緩存大小

其中第1行的“平均負載”表示過去1、5、15分鐘的平均等待CPU運作的程序隊列長度。

首部下方各字段意義見上述表格

顯示内容是互動式的,使用者可通過快捷鍵調整、操作顯示結果。常用快捷鍵:

快捷鍵 意義
s 更改顯示内容的重新整理時間間隔,預設是3秒
k 終止指定程序(實際就是向指定程序發15号信号)
1 每顆CPU資訊分别顯示
l 開啟或隐藏首行資訊(即uptime資訊)
t 開啟或隐藏CPU資訊(第2、3行)
m 開啟或隐藏記憶體資訊(第4、5行)
M、T、P 令顯示結果按記憶體占用比例、CPU占用累積時長、CPU占用比例進行排序。預設是按CPU占用比例排序
q 退出
h 檢視所有快捷鍵及功能

常用選項:

選項 意義
-b 每重新整理一次就作為一個批次顯示在螢幕。預設是在原屏上動态地變動資料
-n 若按批次顯示,指定顯示多少批

選項很簡單,不再示例。

1.3 指令htop

指令htop,更新版top,界面更美觀、功能更強大。在CD光牒上沒有,需在epel源下載下傳安裝。

效果:

linux常用程式及作業管理常用指令0 目錄1 程式查詢指令2 使用信号管理程式3 作業管理
linux常用程式及作業管理常用指令0 目錄1 程式查詢指令2 使用信号管理程式3 作業管理

可使用方向鍵控制光标選擇任意程序,也支援滑鼠點選。

這裡是預設顯示的相關資訊,比較常用。其他字段可使用“F2”設定添加與否,且顯示格式、顔色也均可調整。很簡單,不再列出。

預設顯示的内容意義(按位置對應):

CPU占用率;記憶體占用比例;交換記憶體占用比例。不同顔色代表不同意義,可使用“F1”檢視 總程序數、線程數、處于運作狀态程序數;平均負載(意義同top);終端運作時長
各程序相關資訊
各控制快捷鍵,尤其注意“F1”幫助指令

使用“F1”擷取各快捷鍵:

linux常用程式及作業管理常用指令0 目錄1 程式查詢指令2 使用信号管理程式3 作業管理

快捷鍵在上述幫助頁面均有解釋,常用的有(大部分和top相同):

快捷鍵 意義
u 顯示指定使用者程序
c 标記程序(被标記的字型會變色)
U 解除所有程序的标記
a 指定某程序隻能在某cpu上運作(預設可能會在任何CPU上)
l 檢視指定程序打開的檔案
s 顯示指定程序發起的系統調用

1.4 指令glances

指令glances,同樣用于程序監控。在epel源下載下傳安裝。

效果:

linux常用程式及作業管理常用指令0 目錄1 程式查詢指令2 使用信号管理程式3 作業管理

除了程序資訊它還顯示了網卡、磁盤、挂載等資訊。各字段意義與上述指令結果相同。

快捷鍵等資訊使用幫助“h”檢視即可,用法和上述指令差不多,個别不一樣,不贅述。

它有兩比較好玩的選項,可以把顯示結果另存為html(或CSV)格式的檔案,然後用浏覽器通路。

選項 意義
-o 指定輸出格式,可以是html或CSV
-f 指定檔案儲存的路徑,參數是目錄。它會在該目錄下自動建立儲存結果的檔案
-s,-B 前者為運作在伺服器模式;後者為運作伺服器模式時,綁定的位址(可了解為監聽),它應當是伺服器上一個通的位址
-c 以用戶端模式運作

選項-o、-f示例:

[[email protected] ~]% glances -f ./glances -o html			# 指定儲存目錄為目前目錄下的glances
[[email protected] ~]% firefox ./glances/glances.html			# 它會在指定目錄下自動建立glances.html檔案,而後就可使用浏覽器檢視了

……
           

C/S模式示例:

在一主機上執行:

[[email protected] ~]% glances -s -B 192.168.0.131				# 該主機的一個IP為192.168.0.131
Glances server is running on 192.168.0.131:61209

……
           

另一主機作為用戶端連接配接(如果是新安裝的虛拟機注意看下防火牆):

[[email protected] ~]% glances -c 192.168.0.131				# 通路這個位址,用戶端就可遠端檢視192.168.0.131這台主機上的glances資訊了

……
           

1.5 指令vmstat

指令vmstat,man文檔說明是用于顯示虛拟記憶體資料,實際也顯示了程序等資訊。

效果:

[[email protected] ~]% vmstat						# 直接使用則顯示目前時刻的資訊 
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 383068  54156 224836    0    0    11     1   14   15  0  0 100  0  0	

[[email protected] ~]% vmstat 1					# 可指定重新整理時間(秒)一直顯示
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 383052  54156 224836    0    0    11     1   14   15  0  0 100  0  0	
 0  0      0 383020  54156 224836    0    0     0     0   25   21  0  0 100  0  0	
 0  0      0 383004  54156 224836    0    0     0     0   27   26  0  0 100  0  0

……
           

顯示内容分6類:

procs,程序資訊 r,等待CPU運作的任務隊列長度(實時顯示)
b,處于不可中斷睡眠狀态的程序個數
memory,記憶體資訊 依次為交換記憶體、空閑、緩沖、緩存大小
swap,交換記憶體資訊 si,swap in,資料進入swap中的平均速率(機關kB)
so,swap out,資料離開swap中的平均速率(機關kB)
io,塊裝置io資訊 bi,block in,從塊裝置讀入資料至記憶體的平均速率(機關kB)
bo,block out,儲存資料至塊裝置的平均速率(機關kB)
system,系統級别資訊 in,interrupt,每秒中斷的次數
cs,context switch,上下文切換速率(程序排程速率)
cpu資訊 相關字段上面已說明,不再贅述

此外選項“-s”可顯示記憶體的各項統計資訊。

[[email protected] ~]% vmstat -s
      1012080  total memory
       629524  used memory
       228284  active memory

		……
           

1.6 指令dstat

指令dstat,包含上述所有指令的功能,非常強大

效果:

[[email protected] ~]% dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|  61k 4886B|   0     0 |   0     0 |  41    33 
  0   0 100   0   0   0|   0     0 |  60B  838B|   0     0 |  36    17 
  0   0 100   0   0   0|   0     0 |1252B  358B|   0     0 |  34    16

……
           

直接使用該指令,相當于預設使用了選項“-cdngy”。各字段意義不再贅述。

它擁有衆多選項滿足各查詢,下面列出一部分:

選項 意義
-c,-C 顯示CPU資訊。大寫C用于顯示指定CPU資訊
-d,D 顯示磁盤(disk)資訊,大寫D用于顯示指定磁盤資訊
-y 系統(system)級别資訊,即中斷數、上下文切換數
-m 顯示記憶體相關資訊
-g 顯示記憶體頁進出資料
-s,-S 顯示交換記憶體使用、空閑資訊。大寫S用于顯示指定交換記憶體資訊
-n,-N 顯示網卡收、發速率。大寫N用于顯示指定網卡資訊
-p 顯示程序相關資料
-r 顯示I/O資訊(讀、寫請求)
–aio 顯示異步I/O資訊
–ipc 顯示程序間通信資訊(消息隊列、信号量、共享記憶體)
–tcp 顯示tcp連接配接的資訊(包括連接配接中的各種狀态),還可顯示其他網絡連接配接資訊,部分替代netstat指令功能
–top-cpu 檢視消耗CPU資源最多的程序。可統計各種消耗指定資源最多的程序,如記憶體(mem)、io等等等

也可分批次顯示,指定每批時間間隔(delay)和批次數即可(count)。

2 使用信号管理程序

2.1 指令kill

指令kill,用于向指定程序發送指定信号。

選項“-l”用于檢視目前所能發送的所有信号:

[[email protected] ~]% kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX
           

常用信号:

信号編号 意義
1号 SIGHUP,使程序重讀其配置檔案,但不用重新開機程序
2号 SIGINT,中止正在運作的程序,“ctrl c”就是發送的這個信号
9号 SIGKILL,強行、立即終止正在運作的程序。一般用于終止不正常工作的程序
15号 SIGTERM,正常地終止正在運作的程序,不指定信号時預設發送的就是這個。會正常地關閉程序(比如會先關閉程序打開的檔案等而後關閉程序,比較安全)
19号 SIGSTOP,把指定程序送入背景,該程序即處于停止狀态。“ctrl z”發送的就是這個信号
18号 SIGCONT,令送入背景并停止的程序,在背景繼續運作(比如大檔案的複制操作),以釋放終端。但互動式的程序在背景運作也沒有意義(比如vim)

向指定程序發送信号,引用信号可用信号完整名稱、信号簡寫(完整名稱去掉前面的SIG)、信号編号。

比如,在另一終端執行“ping 127.0.0.1”,在目前終端使用信号中止該程序:

[[email protected] ~]% ps aux | grep ping							# 檢視其程序号
root      2458  0.1  0.0 103256   732 pts/1    S+   16:45   0:00 ping 127.0.0.1

[[email protected] ~]% kill -s 2 2458								# 向該程序發送2号信号
[[email protected] ~]% kill -s sigint 2458						# 使用完整名稱也一樣,可不區分大小寫
[[email protected] ~]% kill -s int 2458							# 使用簡稱也一樣
[[email protected] ~]% kill -2 2458								# 也可省略“-s”,直接“-信号”
           

此外,指令kill也可向背景作業發送信号

2.2 指令killall

指令killall,用于根據指定名稱,向相關程序發送信号。

比如httpd啟動時,會發起多個程序。若使用指令kill向其發送信号,需逐個發送。

使用指令killall并指定參數為httpd,則會向由httpd啟動的所有程序發送信号:

[[email protected] ~]% ps aux | grep httpd
root      2569  0.0  0.3 183912  3856 ?        Ss   16:59   0:00 /usr/sbin/httpd
apache    2572  0.0  0.2 183912  2500 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2573  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2574  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2575  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2576  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2577  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2578  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
apache    2579  0.0  0.2 183912  2484 ?        S    16:59   0:00 /usr/sbin/httpd
root      2629  0.0  0.0 103320   844 pts/0    S+   17:00   0:00 grep httpd
[[email protected] ~]% killall -s 2 httpd
[[email protected] ~]% ps aux | grep httpd | grep -v grep				# 上面顯示的httpd的所有程序均被關閉
[[email protected] ~]%
           

由此,關閉一個服務(通常含多個程序),通常使用指令killall。

3 作業管理

完成一個任務的一個或多個程序可看作一個作業(類似Windows中的任務管理器中的應用程式,完成該應用程式的可能是一個也可能是多個程序)。作業分為:前台(foreground)作業、背景(background)作業。

前台作業為一直占據終端的作業;背景作業為轉入背景運作的作業。

背景作業主要是為了釋放目前終端,使用者可同時運作多個作業(程序)在背景,這樣就不會影響使用者使用終端操作前台作業(程序)。

上述已說明,19号信号(快捷鍵“ctrl z”)可把目前程序送入背景(程序狀态變為停止);對于尚未啟動的作業,隻需在指令後加上“&”即可使其啟動後就運作在背景。

3.1 指令jobs

指令jobs,用于檢視作業。

效果:

[[email protected] ~]% ping 127.0.0.1							# ping指令
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.096 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.056 ms
^Z															# 使用“ctrl z”送入背景
[1]+  Stopped                 ping 127.0.0.1				
[[email protected] ~]% jobs
[1]+  Stopped                 ping 127.0.0.1				# 可看到ping變為背景作業,狀态變為停止
           

再來一個,送入背景:

[[email protected] ~]% ping 192.168.0.131
PING 192.168.0.131 (192.168.0.131) 56(84) bytes of data.
64 bytes from 192.168.0.131: icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from 192.168.0.131: icmp_seq=2 ttl=64 time=0.057 ms
64 bytes from 192.168.0.131: icmp_seq=3 ttl=64 time=0.057 ms
^Z
[2]+  Stopped                 ping 192.168.0.131
[[email protected] ~]% jobs									# 可看到目前有2個作業在背景
[1]-  Stopped                 ping 127.0.0.1
[2]+  Stopped                 ping 192.168.0.131
           

jobs内容各字段意義依次為:

字段 意義
[數字] 作業号,用于辨別作業
“+”、“-” 優先級,“+”為高優先級;“-”次之;不帶任何符号的最低
發起作業的指令 發起作業的指令

jobs常用選項:

選項 意義
-l 除預設字段,還列出PID
-r 列出背景正在運作的作業
-s 列出背景已停止的作業
[[email protected] ~]% jobs -l									# 優先級後的字段為程序号
[1]-  3199 Stopped                 ping 127.0.0.1
[2]+  3210 Stopped                 ping 192.168.0.131
           

3.2 指令fg

指令fg,用于把背景作業調回到前台運作。

效果:

[[email protected] ~]% jobs -l
[1]-  3199 Stopped                 ping 127.0.0.1
[2]+  3210 Stopped                 ping 192.168.0.131
[[email protected] ~]% fg 1									# 把1号作業調回前台運作
ping 127.0.0.1
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.172 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.055 ms

……
           

3.3 指令bg

指令bg,用于讓處于背景的、停止狀态的程序,在背景繼續運作。

容易想到,這個作業必須是無需與使用者互動的,否則就算在背景運作也無意義(比如vim在背景運作沒有意義,雖然有時因為需要可把vim放在背景,但使用時當然還是要調回前台的)。

效果:

[[email protected] ~]% jobs -l 
[2]-  3210 Stopped                 ping 192.168.0.131
[3]+  3256 Stopped                 ping 127.0.0.1
[[email protected] ~]% bg										# 不指定作業号,預設就是最高優先級的作業 
[3]+ ping 127.0.0.1 &
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.218 ms	# 該作業運作了,輸出内容到螢幕
[[email protected] ~]% 64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.055 ms
64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.055 ms

……
           

從上述可以看出另一個問題,就是背景作業被喚醒在背景繼續運作時,輸出内容還是會到螢幕上,影響終端正常使用。

是以,如果期望背景運作某作業,最好把它的輸出内容重定向至某檔案或/dev/null。

是以指令就要變成:

[[email protected] ~]% ping 127.0.0.1 > /dev/null &
[1] 3370
[[email protected] ~]% ping 192.168.0.131 > /dev/null &
[2] 3373
[[email protected] ~]% jobs -l									# 可看到它們在背景處于運作狀态,且沒有輸出資訊至螢幕
[1]-  3370 Running                 ping 127.0.0.1 > /dev/null &
[2]+  3373 Running                 ping 192.168.0.131 > /dev/null &
           

指令kill也可向作業發送信号,對于作業号隻需在前加上“%”即可(否則會被認為是程序号)。

上面提到,18号信号也可令背景停止狀态的作業繼續運作:

[[email protected] ~]% ping 127.0.0.1 > /dev/null
^Z
[1]+  Stopped                 ping 127.0.0.1 > /dev/null
[[email protected] ~]% jobs -l										# 背景作業處于停止狀态
[1]+  3409 Stopped                 ping 127.0.0.1 > /dev/null
[[email protected] ~]% kill -s 18 %1									# 使用18号信号令其運作
[[email protected] ~]% jobs -l
[1]+  3409 Running                 ping 127.0.0.1 > /dev/null &
           

預設信号仍是15号,作用是終止:

[[email protected] ~]% jobs -l
[1]+  3409 Running                 ping 127.0.0.1 > /dev/null &
[[email protected] ~]% kill %1
[[email protected] ~]% jobs -l
[[email protected] ~]%
           

(完)

  1. 程序與終端相關,若終端關閉,則程序也會關閉;無關則沒有影響。 ↩︎
  2. 這裡列出的是預設顯示的各字段。下面所要說明的很多程序查詢指令,它們的預設顯示的字段也包含于此表中,是以寫在一起了,隻是不同指令可能使用的符号不同。

    用于程序查詢的各指令有很多字段預設沒有被顯示,如使用者關心需額外顯示的,需使用對應指令的選項手動指定(比如ps指令的“o”選項等)。衆多預設沒有顯示的字段具體為何可使用man文檔檢視,有的也不常用,這裡不再列出。 ↩︎

  3. 記憶體資源不足時會使用交換記憶體,但程序的某些關鍵資料不能移至交換記憶體,需要常駐在記憶體中。 ↩︎
  4. 可使用man檢視,常見各程序狀态對應的符号:

    符号|狀态

    —|---

    R|運作(Running)态

    S|可中斷睡眠(interruptable sleeping)

    D|不可中斷睡眠(一般是IO造成的阻塞,喚醒也沒用)

    T|停止态

    Z|僵屍态

    +|表示是前台程序(占據終端)

    l|多線程程序

    N|低優先級程序

    <|高優先級程序

    s|session leader,比如一個shell中啟動了很多程序,隻要它挂了,那麼這些程序都挂了,這個shell就是一個session leader ↩︎