Linux進(jìn)程
進(jìn)程(Process): 運(yùn)行中的程序的一個(gè)副本
進(jìn)程存在生命周期,程序是一個(gè)靜態(tài)的文件
Linux內(nèi)核存儲(chǔ)進(jìn)程信息的固定格式:task struct
多個(gè)任務(wù)的的task struct組件的鏈表:task list
Linux進(jìn)程管理的作用
① 判斷服務(wù)器的健康狀態(tài):CPU使用情況您朽、內(nèi)存使用(物理內(nèi)存、空閑內(nèi)存)
② 查看系統(tǒng)中的所有進(jìn)程:進(jìn)程的資源占用情況(CPU钥组、Memory)盏阶;合法or非法進(jìn)程
③ 終止進(jìn)程:常規(guī)方式無法關(guān)閉程序時(shí)摘投,再使用終止進(jìn)程扣典;對(duì)于非法進(jìn)程负甸,將其對(duì)應(yīng)程序完全清理流强,達(dá)到重啟系統(tǒng)不再出現(xiàn)非法進(jìn)程
進(jìn)程創(chuàng)建:
init進(jìn)程:初始化進(jìn)程,負(fù)責(zé)總的用戶進(jìn)程空間管理呻待,不能代替內(nèi)核完成系統(tǒng)調(diào)用等一切特權(quán)指令的執(zhí)行
進(jìn)程:都由其父進(jìn)程創(chuàng)建打月,存在父子關(guān)系
fork(), clone()
進(jìn)程優(yōu)先級(jí):0-139
1-99:實(shí)時(shí)優(yōu)先級(jí);
100-139:靜態(tài)優(yōu)先級(jí)带污;
數(shù)字越小僵控,優(yōu)先級(jí)越高;
Nice值:
(-20,19)對(duì)應(yīng)(100鱼冀,139)Big O標(biāo)準(zhǔn):
O(1):常數(shù)报破,結(jié)果是相同的,輸入值不影響時(shí)間(空間)
O(logn):對(duì)數(shù)千绪,經(jīng)典算法:二叉搜索樹(AVL數(shù))查找算法
O(n):線性復(fù)雜度,
O(n^2), O(2^n)...
調(diào)整進(jìn)程優(yōu)先級(jí):
可通過nice值調(diào)整的優(yōu)先級(jí)范圍:100-139
分別對(duì)應(yīng)于:-20, 19
進(jìn)程啟動(dòng)時(shí)充易,其nice值默認(rèn)為0,其優(yōu)先級(jí)是120荸型;
nice命令:
以指定的nice值啟動(dòng)并運(yùn)行命令
nice [OPTION] [COMMAND [ARGU]...]
選項(xiàng):
-n NICE
注意:僅管理員可調(diào)低nice值
renice命令:
調(diào)整nice值
renice [-n] NICE PID...
查看Nice值和優(yōu)先級(jí):
ps axo pid, ni, priority, comm
進(jìn)程內(nèi)存:
Page Frame: 頁框盹靴,用存儲(chǔ)頁面數(shù)據(jù)
MMU:Memory Management Unit
IPC: Inter Process Communication (進(jìn)程間通信)
同一主機(jī)上:
signal
shm: shared memory
semerphor不同主機(jī)上:
rpc: remote procecure call (遠(yuǎn)程過程調(diào)用)
socket:套接字
Linux內(nèi)核:搶占式多任務(wù)
進(jìn)程類型
- 守護(hù)進(jìn)程(daemon): 在系統(tǒng)引導(dǎo)過程中啟動(dòng)的進(jìn)程,跟終端無關(guān)的進(jìn)程
- 前臺(tái)進(jìn)程:跟終端相關(guān)瑞妇,通過終端啟動(dòng)的進(jìn)程
注意:也可把在前臺(tái)啟動(dòng)的進(jìn)程送往后臺(tái)稿静,以守護(hù)模式運(yùn)行;
進(jìn)程狀態(tài):
運(yùn)行態(tài):running
就緒態(tài):ready
睡眠態(tài):
- 可中斷:interruptable
- 不可中斷:uninterruptable
停止態(tài):暫停于內(nèi)存中辕狰,但不會(huì)被調(diào)度改备,除非手動(dòng)啟動(dòng)之;stopped
僵死態(tài):zombie
僵尸進(jìn)程的產(chǎn)生蔓倍、危害及避免方法
產(chǎn)生原因:
在子進(jìn)程終止后到父進(jìn)程調(diào)用wait()前的時(shí)間里悬钳,子進(jìn)程被稱為zombie;
- 子進(jìn)程結(jié)束后向父進(jìn)程發(fā)出SIGCHLD信號(hào)偶翅,父進(jìn)程默認(rèn)忽略了它
- 父進(jìn)程沒有調(diào)用wait()或waitpid()函數(shù)來等待子進(jìn)程的結(jié)束
- 網(wǎng)絡(luò)原因有時(shí)會(huì)引起僵尸進(jìn)程默勾;
危害:
- 僵尸進(jìn)程會(huì)占用系統(tǒng)資源,如果很多聚谁,則會(huì)嚴(yán)重影響服務(wù)器的性能母剥;
- 孤兒進(jìn)程不會(huì)占用系統(tǒng)資源,最終是由init進(jìn)程托管,由init進(jìn)程來釋放媳搪;
如何防止僵尸進(jìn)程:
- 讓僵尸進(jìn)程成為孤兒進(jìn)程铭段,由init進(jìn)程回收;(手動(dòng)殺死父進(jìn)程)
- 調(diào)用fork()兩次秦爆;
- 捕捉SIGCHLD信號(hào)序愚,并在信號(hào)處理函數(shù)中調(diào)用wait函數(shù);
進(jìn)程的分類:
- CPU-Bound
- IO-Bound
Linux系統(tǒng)上的進(jìn)程查看工具
CentOS 5: SysV init
CentOS 6:upstart
CentOS 7:systemd
pstree命令:
pstree - display a tree of processes
[root@CentOS7 ~]# pstree
systemd─┬─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
├─atd
├─auditd───{auditd}
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─irqbalance
├─login───bash
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───6*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
[root@CentOS6 ~]# pstree
init─┬─NetworkManager─┬─dhclient
│ └─{NetworkManager}
├─abrtd
├─acpid
├─atd
├─auditd───{auditd}
├─automount───4*[{automount}]
├─bluetoothd
├─bonobo-activati───{bonobo-activat}
├─certmonger
├─clock-applet───{clock-applet}
├─console-kit-dae───63*[{console-kit-da}]
├─crond
├─cupsd
├─2*[dbus-daemon───{dbus-daemon}]
├─2*[dbus-launch]
├─devkit-power-da
├─gconf-im-settin
├─gconfd-2
├─gdm-binary─┬─gdm-simple-slav─┬─Xorg
ps命令:
/proc/:內(nèi)核中的狀態(tài)信息
內(nèi)核參數(shù):
- 可設(shè)置其值從而調(diào)整內(nèi)核運(yùn)行特性的參數(shù)等限;/proc/sys/
- 狀態(tài)變量:其用于輸出內(nèi)核中統(tǒng)計(jì)信息或狀態(tài)信息爸吮,僅用于查看;
參數(shù):模擬成文件系統(tǒng)類型望门;
進(jìn)程:
/proc/#:proc進(jìn)程參數(shù)
#:PID(進(jìn)程號(hào))
啟動(dòng)進(jìn)程的方式:
系統(tǒng)啟動(dòng)過程中自動(dòng)啟動(dòng):與終端無關(guān)的進(jìn)程
用戶通過終端啟動(dòng):與終端相關(guān)的進(jìn)程
格式:ps [options]
options有三種風(fēng)格:
1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
Options:
a:所有與終端相關(guān)的進(jìn)程
[root@promote 1]# ps a
PID TTY STAT TIME COMMAND
7514 tty1 Ss+ 0:00 -bash
7540 pts/0 Ss 0:00 -bash
7831 pts/0 R+ 0:00 ps a
x:所有與終端無關(guān)的進(jìn)程
u:以用戶為中心組織進(jìn)程狀態(tài)信息顯示
常用組合之一:ps aux
[root@promote 1]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.2 0.3 128240 6872 ? Ss 11:55 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 11:55 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11:55 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11:55 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 11:55 0:00 [kworker/u256:0]
root 7 0.0 0.0 0 0 ? S 11:55 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11:55 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11:55 0:01 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 11:55 0:00 [lru-add-drain]
root 11 0.0 0.0 0 0 ? S 11:55 0:00 [watchdog/0]
VSZ:虛擬內(nèi)存集
RSS:Resident Size形娇,常駐內(nèi)存集
STAT:狀態(tài)
- R:running
- S:interruptable sleeping
- D:uninterruptable sleeping
- T:Stopped
- Z:zombie
- +:前臺(tái)進(jìn)程
- l:多線程進(jìn)程
- N:低優(yōu)先級(jí)進(jìn)程
- <:高優(yōu)先級(jí)進(jìn)程
- s:session leader
-e:顯示所有進(jìn)程
[root@promote ~]# ps -e
PID TTY TIME CMD
1 ? 00:00:03 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 ksoftirqd/0
-f:顯示完整格式的進(jìn)程信息
[root@promote ~]# ps -f
UID PID PPID C STIME TTY TIME CMD
root 7905 7901 0 15:46 pts/1 00:00:00 -bash
root 7923 7905 0 15:54 pts/1 00:00:00 ps -f
常用組合之二:-ef
[root@promote ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 14:38 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 14:38 ? 00:00:00 [kthreadd]
root 3 2 0 14:38 ? 00:00:00 [ksoftirqd/0]
-F:顯示完整格式的進(jìn)程信息
[root@promote ~]# ps -F
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 7905 7901 0 28860 2060 4 15:46 pts/1 00:00:00 -bash
root 7925 7905 0 38840 1864 6 15:55 pts/1 00:00:00 ps -F
C: cpu utilization
PSR:運(yùn)行于哪顆CPU之上
-H:以層級(jí)結(jié)構(gòu)顯示進(jìn)程的相關(guān)信息
[root@promote ~]# ps -H
PID TTY TIME CMD
7905 pts/1 00:00:00 bash
7927 pts/1 00:00:00 ps
常用組合之三:-eFH
[root@promote ~]# ps -eFH
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 2 0 0 0 0 0 14:38 ? 00:00:00 [kthreadd]
root 3 2 0 0 0 0 14:38 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 0 0 0 14:38 ? 00:00:00 [kworker/0:0H]
root 6 2 0 0 0 1 14:38 ? 00:00:00 [kworker/u256:0]
常用組合之四:-eo, axo
o field1, field2,...:自定義要顯示的字段列表,以逗號(hào)分隔筹误;
常用的field:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
ni:nice值桐早;
priority:priority, 優(yōu)先級(jí);
rtprio:real time priority厨剪,實(shí)時(shí)優(yōu)先級(jí)哄酝;
[root@promote ~]# ps axo pid,ni,pri,pcpu,stat,comm,tty,ppid,rtprio
PID NI PRI %CPU STAT COMMAND TT PPID RTPRIO
1 0 19 0.0 Ss systemd ? 0 -
2 0 19 0.0 S kthreadd ? 0 -
3 0 19 0.0 S ksoftirqd/0 ? 2 -
5 -20 39 0.0 S< kworker/0:0H ? 2 -
6 0 19 0.0 S kworker/u256:0 ? 2 -
7 - 139 0.0 S migration/0 ? 2 99
pgrep, pkill命令:
look up or signal processes based on name and other attributes
pgrep [options] pattern
pkill [options] pattern
-u uid:effective user
-U uid:read user
[root@promote ~]# pgrep -U postfix
7221
7899
-t TERMINAL:與指定的終端相關(guān)的進(jìn)程
-l:顯示進(jìn)程名
[root@promote ~]# pgrep -U postfix -l
7221 qmgr
7899 pickup
-a:顯示完整格式的進(jìn)程名
[root@promote ~]# pgrep -U postfix -a
7221 qmgr -l -t unix -u
7899 pickup -l -t unix -u
-P pid:顯示此進(jìn)程的子進(jìn)程
[root@promote ~]# pgrep -P 7004
7536
7901
[root@promote ~]# pgrep ssh
7004
7536
7901
pidof命令:
根據(jù)進(jìn)程名,取其pid
[root@promote ~]# pidof sshd
7901 7536 7004
top命令:
[root@promote ~]# top
top - 16:16:50 up 1:38, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 167 total, 1 running, 166 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1863252 total, 1398828 free, 161300 used, 303124 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1497152 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6439 root 20 0 300720 6336 4976 S 0.7 0.3 0:12.26 vmtoolsd
60 root 20 0 0 0 0 S 0.3 0.0 0:05.76 kworker/0:1
129 root 20 0 0 0 0 S 0.3 0.0 0:01.61 kworker/1:2
top 命令輸出中的第一行是系統(tǒng)的平均負(fù)載祷膳,這和 uptime 命令的輸出是一樣的
16:16:50 表示系統(tǒng)當(dāng)前時(shí)間
up 1:38 表示系統(tǒng)最后一次啟動(dòng)后總的運(yùn)行時(shí)間
3 user 表示當(dāng)前系統(tǒng)中有3個(gè)登錄用戶
load average: 0.00, 0.01, 0.05 表示系統(tǒng)的平均負(fù)載陶衅,最后的三個(gè)數(shù)字分別表示最后一分鐘的系統(tǒng)平均負(fù)載,最后五分鐘的系統(tǒng)平均負(fù)載直晨,最后十五分鐘的系統(tǒng)平均負(fù)載Tasks:167 total 表示當(dāng)前系統(tǒng)的進(jìn)程總數(shù)
1 running 表示當(dāng)前系統(tǒng)中有 1 個(gè)正在運(yùn)行的進(jìn)程
166 sleeping 表示當(dāng)前系統(tǒng)中有 166 個(gè)休眠的進(jìn)程
0 stopped 表示停止?fàn)顟B(tài)的進(jìn)程數(shù)為 0
0 zombie 表示處于僵死狀態(tài)的進(jìn)程數(shù)為 0us:進(jìn)程在用戶地址空間中消耗 CPU 時(shí)間的百分比
sy:進(jìn)程在內(nèi)核地址空間中消耗 CPU 時(shí)間的百分比
ni:ni 是 nice 的縮寫搀军,可以通過 nice 值調(diào)整進(jìn)程用戶態(tài)的優(yōu)先級(jí)
id:CPU 處于 idle 狀態(tài)的百分比。一般情況下勇皇, us + ni + id 應(yīng)該接近 100%
wa:CPU 等待磁盤 IO 操作的時(shí)間
hi & si:這兩個(gè)值表示系統(tǒng)處理中斷消耗的時(shí)間罩句。中斷分為硬中斷和軟中斷,hi 表示處理硬中斷消耗的時(shí)間敛摘,si 表示處理軟中斷消耗的時(shí)間
st:只有 Linux 在作為虛擬機(jī)運(yùn)行時(shí) st 才是有意義的的止。它表示虛機(jī)等待 CPU 資源的時(shí)間(虛機(jī)分到的是虛擬 CPU,當(dāng)需要真實(shí)的 CPU 時(shí)着撩,可能真實(shí)的 CPU 正在運(yùn)行其它虛機(jī)的任務(wù),所以需要等待)
排序:
P:以占據(jù)CPU百分比排序匾委;
M:以占據(jù)內(nèi)存百分比排序拖叙;
T:累積占用CPU時(shí)間排序;
首部信息:
uptime信息:l命令
tasks及cpu信息:t命令
內(nèi)存信息:m命令
退出命令:q
修改刷新時(shí)間間隔:s
終止指定的進(jìn)程:k
選項(xiàng):
-d #:指定刷新時(shí)間間隔赂乐,默認(rèn)為3秒薯鳍;
-b:以批次方式顯示;
-n #:顯示多少批次;
uptime命令:顯示系統(tǒng)時(shí)間挖滤、運(yùn)行時(shí)長(zhǎng)及平均負(fù)載崩溪;
過去1分鐘、5分鐘和15分鐘的平均負(fù)載斩松;
等待運(yùn)行的進(jìn)程隊(duì)列的長(zhǎng)度伶唯;
[root@promote ~]# uptime
16:16:57 up 1:38, 3 users, load average: 0.00, 0.01, 0.05
linux進(jìn)程管理類命令:
以下常用命令一般系統(tǒng)都沒有自帶,需要提前配置epel源惧盹,再通過yum install安裝命令
yum install epel-release -y
htop命令:
選項(xiàng):
-d #:指定延遲時(shí)間間隔
-u UserName:僅顯示指定用戶的進(jìn)程
-s COLUME:以指定字段進(jìn)行排序
子命令:
l:顯示選定的進(jìn)程打開的文件列表
s:跟蹤選定的進(jìn)程的系統(tǒng)調(diào)用
t:以層級(jí)關(guān)系顯示各進(jìn)程狀態(tài)
a:將選定的進(jìn)程綁定至某指定的CPU核心
vmstat命令:
Report virtual memory statistics
格式:vmstat [options] [delay [count]]
[root@promote ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1318008 2232 384676 0 0 2 1 7 9 0 0 100 0 0
procs:
r:等待運(yùn)行的進(jìn)程的個(gè)數(shù)乳幸;CPU上等待運(yùn)行的任務(wù)的隊(duì)列長(zhǎng)度
b:處于不可中斷睡眠態(tài)的進(jìn)程個(gè)數(shù);被阻塞的任務(wù)隊(duì)列的長(zhǎng)度
memory:
swpd:交換內(nèi)存使用總量
free:空閑的物理內(nèi)存總量
buffer:用于buffer的內(nèi)存總量
cache:用于cache的內(nèi)存總量
swap
si:數(shù)據(jù)進(jìn)入swap中的數(shù)據(jù)速率(kb/s)
so:數(shù)據(jù)離開swap的速率(kb/s)
io
bi:從塊設(shè)備讀入數(shù)據(jù)到系統(tǒng)的速度(kb/s)
bo:保存數(shù)據(jù)至塊設(shè)備的速率(kb/s)
system
in:interrupts钧椰,中斷速率
cs:context switch, 上下文 切換的速率
cpu
us: user space
sy:system
id:idle
wa:wait
st: stolen
選項(xiàng):
-s:顯示內(nèi)存統(tǒng)計(jì)數(shù)據(jù)
[root@promote ~]# vmstat -s
1863252 K total memory
158648 K used memory
244444 K active memory
105680 K inactive memory
1317696 K free memory
2232 K buffer memory
384676 K swap cache
2097148 K total swap
0 K used swap
2097148 K free swap
3626 non-nice user cpu ticks
13 nice user cpu ticks
8834 system cpu ticks
15175239 idle cpu ticks
1331 IO-wait cpu ticks
0 IRQ cpu ticks
228 softirq cpu ticks
0 stolen cpu ticks
258842 pages paged in
136325 pages paged out
0 pages swapped in
0 pages swapped out
1022214 interrupts
1274230 CPU context switches
1556262293 boot time
8550 forks
pmap命令:
report memory map of a process
格式:pmap [options] pid [...]
-x:顯示詳細(xì)格式的信息
[root@promote ~]# pmap -x 1
1: /usr/lib/systemd/systemd --system --deserialize 7
Address Kbytes RSS Dirty Mode Mapping
0000555d074b0000 1412 1132 0 r-x-- systemd
0000555d07810000 140 132 132 r---- systemd
0000555d07833000 4 4 4 rw--- systemd
0000555d09046000 1236 1096 1096 rw--- [ anon ]
00007fd8b3926000 832 832 832 rw--- [ anon ]
另一種查看方式:cat /proc/PID/maps
glances命令:
A cross-platform curses-based system monitoring tool
支持C/S架構(gòu)模式粹断,可以遠(yuǎn)程查看
內(nèi)建命令:
Glances 2.5.1 with PSutil 2.2.1
Configuration file: None
a Sort processes automatically b Bytes or bits for network I/O
c Sort processes by CPU% l Show/hide alert logs
m Sort processes by MEM% w Delete warning alerts
u Sort processes by USER x Delete warning and critical alerts
p Sort processes by name 1 Global CPU or per-CPU stats
i Sort processes by I/O rate I Show/hide IP module
t Sort processes by TIME D Enable/disable Docker stats
d Show/hide disk I/O stats T View network I/O as combination
f Show/hide filesystem stats U View cumulative network I/O
n Show/hide network stats F Show filesystem free space
s Show/hide sensors stats g Generate graphs for current history
2 Show/hide left sidebar r Reset history
z Enable/disable processes stats h Show/hide this help screen
3 Enable/disable quick look plugin q Quit (Esc and Ctrl-C also work)
e Enable/disable top extended stats
/ Enable/disable short processes name
0 Enable/disable Irix process CPU
常用選項(xiàng):
-b:以Byte為單位顯示網(wǎng)上數(shù)據(jù)速率;
-d:關(guān)閉磁盤I/O模塊嫡霞;
-m:關(guān)閉mount模塊瓶埋;
-n:關(guān)閉network模塊;
-t #:刷新時(shí)間間隔诊沪;
-1:每個(gè)cpu的相關(guān)數(shù)據(jù)單獨(dú)顯示养筒;
-o {HTML|CSV}:輸出格式;
-f /PATH/TO/SOMEDIR:設(shè)定輸出文件的位置娄徊;
C/S模式下運(yùn)行g(shù)lances命令:
- 服務(wù)模式:
glances -s -B IPADDR
IPADDR:本機(jī)的某地址闽颇,用于監(jiān)聽; - 客戶端模式:
glances -c IPADDR
IPADDR:是遠(yuǎn)程服務(wù)器的地址寄锐;
dstat命令:
versatile tool for generating system resource statistics
格式:dstat [-afv] [options..] [delay [count]]
常用選項(xiàng):
-c兵多, --cpu:顯示cpu相關(guān)信息
-C #,#,...,total-d, --disk:顯示磁盤的相關(guān)信息
-D sda,sdb,...,tobal-g:顯示page相關(guān)的速率數(shù)據(jù)
-m:Memory的相關(guān)統(tǒng)計(jì)數(shù)據(jù)
-n:Interface的相關(guān)統(tǒng)計(jì)數(shù)據(jù)
-p:顯示process的相關(guān)統(tǒng)計(jì)數(shù)據(jù)
-r:顯示io請(qǐng)求的相關(guān)的統(tǒng)計(jì)數(shù)據(jù)
-s:顯示swapped的相關(guān)統(tǒng)計(jì)數(shù)據(jù)網(wǎng)絡(luò)相關(guān)的
--tcp
--udp
--raw
--socket--ipc:進(jìn)程間通信
--top-cpu:顯示最占用CPU的進(jìn)程
--top-io:最占用io的進(jìn)程
--top-mem:最占用內(nèi)存的進(jìn)程
--top-lantency:延遲最大的進(jìn)程
kill命令:
terminate a process(終止一個(gè)進(jìn)程)
用于向進(jìn)程發(fā)送信號(hào),以實(shí)現(xiàn)對(duì)進(jìn)程的管理橄仆;
顯示當(dāng)前系統(tǒng)可用信號(hào):
kill -l [signal]
[root@promote ~]# 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
每個(gè)信號(hào)的標(biāo)識(shí)方法有三種:
- 信號(hào)的數(shù)字標(biāo)識(shí)剩膘;
- 信號(hào)的完整名稱;
- 信號(hào)的簡(jiǎn)寫名稱盆顾;
向進(jìn)程發(fā)信號(hào):
kill [-s signal|-SIGNAL] pid...
常用信號(hào):
1)SIGHUP:無須關(guān)閉進(jìn)程而讓其重讀配置文件怠褐;
2)SIGINT:終止正在運(yùn)行的進(jìn)程,相當(dāng)于Ctrl+c
9)SIGKILL:殺死運(yùn)行中的進(jìn)程您宪;
15)SIGTERM:終止運(yùn)行中的進(jìn)程奈懒;
18)SIGCONT:繼續(xù)運(yùn)行
19)SIGSTOP:停止
killall命令:
kill processes by name
killall [-SIGNAL] program
[root@promote ~]# killall httpd
[root@promote ~]# ps aux | grep httpd
root 8838 0.0 0.0 112708 976 pts/1 S+ 21:21 0:00 grep --color=auto httpd
Linux系統(tǒng)作業(yè)控制:
job:
前臺(tái)作業(yè)(foregroud):通過終端啟動(dòng),且啟動(dòng)后會(huì)一直占據(jù)終端宪巨;
后臺(tái)作業(yè)(backgroud):可以通過終端啟動(dòng)磷杏,但啟動(dòng)后即轉(zhuǎn)入后臺(tái)運(yùn)行(釋放終端);
如何讓作業(yè)運(yùn)行于后臺(tái)捏卓?
(1) 運(yùn)行中的作業(yè)
Ctrl+z
注意:送往后臺(tái)后极祸,作業(yè)會(huì)轉(zhuǎn)為停止態(tài);
[root@promote ~]# htop
[1]+ Stopped htop
(2) 尚未啟動(dòng)的作業(yè)
[root@promote ~] # COMMAND &
注意:此類作業(yè)雖然被送往后臺(tái),但其依然與終端相關(guān)遥金;
如果希望把送往后臺(tái)的作業(yè)剝離與終端的關(guān)系:
[root@promote ~] # nohup COMMAND &
查看所有的作業(yè):
[root@promote ~]# jobs
[1]- Stopped htop
[2]+ Stopped vim /proc
可實(shí)現(xiàn)作業(yè)控制的常用命令:
[root@promote ~] # fg [[%]JOB_NUM]:把指定的作業(yè)調(diào)回前臺(tái)浴捆;
[root@promote ~] # bg [[%]JOB_NUM]:讓送往后臺(tái)的作業(yè)在后臺(tái)繼續(xù)運(yùn)行;
[root@promote ~] # kill %JOB_NUM:終止指定的作業(yè)稿械;