日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本節(jié)所講內(nèi)容:

10.1 進(jìn)程概述和ps查看進(jìn)程工具

10.2 uptime查看系統(tǒng)負(fù)載-top動(dòng)態(tài)管理進(jìn)程

10.3 前后臺(tái)進(jìn)程切換-nice進(jìn)程優(yōu)先級(jí)-screen后臺(tái)執(zhí)行命令

安裝包地址:滲透測(cè)試實(shí)戰(zhàn):內(nèi)網(wǎng)滲透之域滲透

10.1 進(jìn)程概述和ps管理進(jìn)程 10.1.1 什么是進(jìn)程?

進(jìn)程: 是程序運(yùn)行的過程, 動(dòng)態(tài),有生命周期及運(yùn)行狀態(tài),是已啟動(dòng)的可執(zhí)行程序的運(yùn)行實(shí)例。

進(jìn)程有以下組成部分:

• 已分配內(nèi)存的地址空間;

• 安全屬性,包括所有權(quán)憑據(jù)和特權(quán);

• 程序代碼的一個(gè)或多個(gè)執(zhí)行線程;

• 進(jìn)程狀態(tài)

線程:進(jìn)程和線程都是由操作系統(tǒng)所體現(xiàn)的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性。進(jìn)程和線程的區(qū)別在于:簡(jiǎn)而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程。

程序: 二進(jìn)制文件(程序即二進(jìn)制文件),靜態(tài)實(shí)體 /bin/date,/usr/sbin/sshd

下圖所示的是進(jìn)程的生命周期:

父進(jìn)程復(fù)制自己的地址空間(fork [f?:k] 分叉)創(chuàng)建一個(gè)新的(子)進(jìn)程結(jié)構(gòu)。每個(gè)新進(jìn)程分配一個(gè)唯一的進(jìn)程 ID (PID),滿足跟蹤安全性之需。PID 和 父進(jìn)程 ID (PPID)是子進(jìn)程環(huán)境的元素,任何進(jìn)程都可以創(chuàng)建子進(jìn)程,所有進(jìn)程都是第一個(gè)系統(tǒng)進(jìn)程的后代。

centos5或6PID為1的進(jìn)程是: init

centos7 PID為1的進(jìn)程是: systemd

centso8 PID為1的進(jìn)程是: systemd

僵尸進(jìn)程:一個(gè)進(jìn)程使用fork創(chuàng)建子進(jìn)程,如果子進(jìn)程退出,而父進(jìn)程并沒有調(diào)用wait或waitpid獲取子進(jìn)程的狀態(tài)信息,那么子進(jìn)程的進(jìn)程描述符仍然保存在系統(tǒng)中。這種進(jìn)程稱之為僵尸進(jìn)程。

父進(jìn)程退出了, 子進(jìn)程沒有退出, 那么這些子進(jìn)程就沒有父進(jìn)程來管理,就變成僵尸進(jìn)程。

10.1.2 進(jìn)程的屬性

進(jìn)程ID(PID):是唯一的數(shù)值,用來區(qū)分進(jìn)程

父進(jìn)程的ID(PPID)

啟動(dòng)進(jìn)程的用戶ID(UID)和所歸屬的組(GID)

進(jìn)程狀態(tài):狀態(tài)分為運(yùn)行R(running)、休眠S(sleep)、僵尸Z(zombie)

進(jìn)程執(zhí)行的優(yōu)先級(jí)

進(jìn)程所連接的終端名

進(jìn)程資源占用:比如占用資源大小(內(nèi)存、CPU占用量)

10.1.3 使用ps查看進(jìn)程工具

1、ps查看進(jìn)程工具

例1:常用的參數(shù):

a: 顯示跟當(dāng)前終端關(guān)聯(lián)的所有進(jìn)程

u: 基于用戶的格式顯示(U: 顯示某用戶ID所有的進(jìn)程)

x: 顯示所有進(jìn)程,不以終端機(jī)來區(qū)分

例2:常用的選項(xiàng)組合是 ps -aux

[root@xuegod63 ~]# ps -axu | more

注: 最后一列[xxxx] 使用方括號(hào)括起來的進(jìn)程是內(nèi)核態(tài)的進(jìn)程。 沒有括起來的是用戶態(tài)進(jìn)程。

上面的參數(shù)輸出每列含意:

USER: 啟動(dòng)這些進(jìn)程的用戶

PID: 進(jìn)程的ID

%CPU 進(jìn)程占用的CPU百分比;
%MEM 占用內(nèi)存的百分比;

VSZ:進(jìn)程占用的虛擬內(nèi)存大小(單位:KB)
RSS:進(jìn)程占用的物理內(nèi)存大小(單位:KB)

STAT:該程序目前的狀態(tài),linux進(jìn)程有5種基本狀態(tài):

R :該程序目前正在運(yùn)行,或者是可被運(yùn)行;

S :該程序目前正在睡眠當(dāng)中 (可說是 idle 狀態(tài)啦!),但可被某些訊號(hào)(signal) 喚醒。

T :該程序目前正在偵測(cè)或者是停止了;

Z :該程序應(yīng)該已經(jīng)終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態(tài)

D 不可中斷狀態(tài).

5個(gè)基本狀態(tài)后,還可以加一些字母,比如:Ss、R+,如下圖:

它們含意如下::

<: 表示進(jìn)程運(yùn)行在高優(yōu)先級(jí)上

N: 表示進(jìn)程運(yùn)行在低優(yōu)先級(jí)上

L: 表示進(jìn)程有頁面鎖定在內(nèi)存中

s: 表示進(jìn)程是控制進(jìn)程

l: 表示進(jìn)程是多線程的

+: 表示當(dāng)前進(jìn)程運(yùn)行在前臺(tái)

START:該 process 被觸發(fā)啟動(dòng)的時(shí)間;

TIME :該 process 實(shí)際使用 CPU 運(yùn)作的時(shí)間。

COMMAND:該程序的實(shí)際指令

例1: 查看進(jìn)程狀態(tài)

[root@xuegod63 ~]# vim a.txt

在另一個(gè)終端執(zhí)行:

[root@xuegod63 ~]# ps -aux | grep a.txt #查看狀態(tài) S表示睡眠狀態(tài), + 表示前臺(tái)

root 4435 0.0 0.2 151752 5292 pts/1 S+ 20:52 0:00 vim a.txt

root 4661 0.0 0.0 112676 996 pts/0 S+ 21:05 0:00 grep --color=auto a.txt

在vim a.txt 這個(gè)終端上 按下: ctrl+z

[1]+ 已停止 vim a.txt

在另一個(gè)終端執(zhí)行:

[root@xuegod63 ~]# ps -aux | grep a.txt #查看狀態(tài) T表示停止?fàn)顟B(tài)

root 4435 0.0 0.2 151752 5292 pts/1 T 20:52 0:00 vim a.txt

root 4675 0.0 0.0 112676 996 pts/0 S+ 21:05 0:00 grep --color=auto a.txt

注:

ctrl-c 是發(fā)送 SIGINT 信號(hào),終止一個(gè)進(jìn)程

ctrl-z 是發(fā)送 SIGSTOP信號(hào),掛起一個(gè)進(jìn)程。將作業(yè)放置到后臺(tái)(暫停) 前臺(tái)進(jìn)程收到這些信號(hào),就會(huì)采取相應(yīng)動(dòng)作。

ctrl-d 不是發(fā)送信號(hào),而是表示一個(gè)特殊的二進(jìn)制值,表示 EOF。代表輸入完成或者注銷

在shell中,ctrl-d表示退出當(dāng)前shell.

例2: D 不可中斷狀態(tài)

[root@xuegod63 ~]# tar -zcvf usr-tar.gz /usr/

#然后在另一個(gè)終端不斷查看狀態(tài),由S+,R+變?yōu)镈+

2、ps常用的參數(shù): ps -ef

-e 顯示所有進(jìn)程

-f 顯示完整格式輸出

我們常用的組合: ps -ef

包含的信息如下

UID: 啟動(dòng)這些進(jìn)程的用戶,程序被該UID所擁有

PID: 該進(jìn)程的ID

PPID: 該進(jìn)程的父進(jìn)程的ID

C: 該進(jìn)程生命周期中的CPU 使用資源百分比

STIME: 進(jìn)程啟動(dòng)時(shí)的系統(tǒng)時(shí)間

TTY: 表明進(jìn)程在哪個(gè)終端設(shè)備上運(yùn)行。如果顯示 ?表示與終端無關(guān),這種進(jìn)程一般是內(nèi)核態(tài)進(jìn)程。另外, tty1-tty6 是本機(jī)上面的登入者程序,若為 pts/0 等,則表示運(yùn)行在虛擬終端上的進(jìn)程。

TIME: 運(yùn)行進(jìn)程一共累計(jì)占用的CPU時(shí)間

CMD: 啟動(dòng)的程序名稱

例1:測(cè)試CPU使用時(shí)間。

dd if=/dev/zero of=~/zero.txt count=10 bs=100M

[root@localhost ~]# ps -axu | grep dd

注:

ps aux 是用BSD的格式來顯示進(jìn)程。

ps -ef 是用標(biāo)準(zhǔn)的Unix格式顯示進(jìn)程

10.2 uptime查看系統(tǒng)負(fù)載-top動(dòng)態(tài)管理進(jìn)程 10.2.1 uptime查看CPU負(fù)載工具

[root@localhost ~]# uptime

13:22:30 up 20days, 2 users, load average: 0.06, 0.60, 0.48

彈出消息含意如下:

13:22:30

當(dāng)前時(shí)間

up 20days

系統(tǒng)運(yùn)行時(shí)間 ,說明此服務(wù)器連續(xù)運(yùn)行20天了

2 user

當(dāng)前登錄用戶數(shù)

load average: 0.06, 0.60, 0.48

系統(tǒng)負(fù)載,即任務(wù)隊(duì)列的平均長(zhǎng)度。 三個(gè)數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。

任務(wù)隊(duì)列的平均長(zhǎng)度是什么?

大廳排隊(duì)買票:

這時(shí)隊(duì)列是4:

cpu隊(duì)列數(shù)為3時(shí),如圖:

互動(dòng):例1:找出前當(dāng)系統(tǒng)中,CPU負(fù)載過高的服務(wù)器?

服務(wù)器1: load average: 0.15, 0.08, 0.01 1核

服務(wù)器2: load average: 4.15, 6.08, 6.01 1核

服務(wù)器3: load average: 10.15, 10.08, 10.01 4核

答案:服務(wù)器2

如果服務(wù)器的CPU為1核心,則load average中的數(shù)字 >=3 負(fù)載過高,如果服務(wù)器的CPU為4核心,則load average中的數(shù)字 >=12 負(fù)載過高。

經(jīng)驗(yàn):?jiǎn)魏诵模?分鐘的系統(tǒng)平均負(fù)載不要超過3,就可以,這是個(gè)經(jīng)驗(yàn)值。

如下圖: 1人只能買1張票,排第四的人可能會(huì)急。 所以我們認(rèn)為超過3就升級(jí)CPU

10.2.2 top命令

[root@xuegod63 ~]# top #top彈出的每行信息含意如下:

第一行內(nèi)容和uptime彈出的信息一樣

進(jìn)程和CPU的信息( 第二、三行)

當(dāng)有多個(gè)CPU時(shí),這些內(nèi)容可能會(huì)超過兩行。內(nèi)容如下:

Tasks: 481 total

進(jìn)程總數(shù)

1 running

正在運(yùn)行的進(jìn)程數(shù)

480 sleeping

睡眠的進(jìn)程數(shù)

0 stopped

停止的進(jìn)程數(shù)

0 zombie

僵尸進(jìn)程數(shù)

Cpu(s): 0.0% us

系統(tǒng)用戶進(jìn)程使用CPU百分比。

0.0% sy

內(nèi)核中的進(jìn)程占用CPU百分比

0.0% ni

用戶進(jìn)程空間內(nèi)改變過優(yōu)先級(jí)的進(jìn)程占用CPU百分比

98.7% id

空閑CPU百分比

0.0% wa

cpu等待I/0完成的時(shí)間總量。

測(cè)試:

終端1:執(zhí)行:top

終端2:dd if=/dev/zero of=/a.txt count=10 bs=100M

終端3:dd if=/dev/zero of=/a.txt count=10 bs=100M

正常讀寫時(shí),如果wa占用較多CPU,那么就是磁盤性能問題,建議更換磁盤。

如下:

0.0% hi(了解)

硬中斷消耗時(shí)間

硬中斷,占用CPU百分比。1. 硬中斷是由硬件產(chǎn)生的,比如,像磁盤,網(wǎng)卡,鍵盤,時(shí)鐘等。每個(gè)設(shè)備或設(shè)備集都有它自己的IRQ(中斷請(qǐng)求)。基于IRQ(Interrupt Request),CPU可以將相應(yīng)的請(qǐng)求分發(fā)到對(duì)應(yīng)的硬件驅(qū)動(dòng)上(注:硬件驅(qū)動(dòng)通常是內(nèi)核中的一個(gè)子程序,而不是一個(gè)獨(dú)立的進(jìn)程)。# hi -> Hardware IRQ: The amount of time the CPU has been servicing hardware interrupts.

0.0% si(了解)

軟中斷消耗時(shí)間

軟中斷,占用CPU百分比。1. 通常,軟中斷是一些對(duì)I/O的請(qǐng)求。這些請(qǐng)求會(huì)調(diào)用內(nèi)核中可以調(diào)度I/O發(fā)生的程序。對(duì)于某些設(shè)備,I/O請(qǐng)求需要被立即處理,而磁盤I/O請(qǐng)求通常可以排隊(duì)并且可以稍后處理。根據(jù)I/O模型的不同,進(jìn)程或許會(huì)被掛起直到I/O完成,此時(shí)內(nèi)核調(diào)度器就會(huì)選擇另一個(gè)進(jìn)程去運(yùn)行。I/O可以在進(jìn)程之間產(chǎn)生并且調(diào)度過程通常和磁盤I/O的方式是相同。# si -> Software Interrupts.: The amount of time the CPU has been servicingsoftware interrupts.

0.0 st (steal 偷)

st:虛擬機(jī)偷取物理的時(shí)間。比如:物理機(jī)已經(jīng)運(yùn)行了KVM虛擬機(jī)。KVM虛擬機(jī)占用物理機(jī)的cpu時(shí)間

內(nèi)存信息(第四五行)

內(nèi)容如下:

Mem: 2033552k total

物理內(nèi)存總量

340392k used

使用的物理內(nèi)存總量

1376636k free

空閑內(nèi)存總量

316524k buff/cache

用作內(nèi)核緩存的內(nèi)存量。

和free -k 一個(gè)意思

Swap: 2017948k total

交換區(qū)總量

0k used

使用的交換區(qū)總量

192772k free

空閑交換區(qū)總量

1518148 avail Mem

總的可利用內(nèi)存是多少

注:如果swap分區(qū),被使用,那么你的內(nèi)存不夠用了。

第7行進(jìn)程信息

列名

含義

PID

進(jìn)程id

USER

進(jìn)程所有者的用戶名

PR

優(yōu)先級(jí)(由內(nèi)核動(dòng)態(tài)調(diào)整),用戶不能

NI

進(jìn)程優(yōu)先級(jí)。 nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí),用戶可以自己調(diào)整

VIRT(virtual memory usage)

虛擬內(nèi)存,是進(jìn)程正在使用的所有內(nèi)存(ps中標(biāo)為VSZ)

VIRT:virtual memory usage 虛擬內(nèi)存

1、進(jìn)程“需要的”虛擬內(nèi)存大小,包括進(jìn)程使用的庫、代碼、數(shù)據(jù)等

2、假如進(jìn)程申請(qǐng)100m的內(nèi)存,但實(shí)際只使用了10m,那么它會(huì)增長(zhǎng)100m,而不是實(shí)際的使用量

RES(resident memory usage)

是進(jìn)程所使用的物理內(nèi)存。實(shí)際實(shí)用內(nèi)存(ps中標(biāo)為RSS)

RES:resident memory usage 常駐內(nèi)存

1、進(jìn)程當(dāng)前使用的內(nèi)存大小,但不包括swap out

2、包含其他進(jìn)程的共享

3、如果申請(qǐng)100m的內(nèi)存,實(shí)際使用10m,它只增長(zhǎng)10m,與VIRT相反

4、關(guān)于庫占用內(nèi)存的情況,它只統(tǒng)計(jì)加載的庫文件所占內(nèi)存大小

SHR

共享內(nèi)存大小,單位kb

SHR:shared memory 共享內(nèi)存

1、除了自身進(jìn)程的共享內(nèi)存,也包括其他進(jìn)程的共享內(nèi)存

2、雖然進(jìn)程只使用了幾個(gè)共享庫的函數(shù),但它包含了整個(gè)共享庫的大小

3、計(jì)算某個(gè)進(jìn)程所占的物理內(nèi)存大小公式:RES – SHR

4、swap out后,它將會(huì)降下來

S

進(jìn)程狀態(tài)。
D=不可中斷的睡眠狀態(tài)
R=運(yùn)行中或可運(yùn)行
S=睡眠中
T=已跟蹤/已停止
Z=僵停

%CPU

上次更新到現(xiàn)在的CPU時(shí)間占用百分比

%MEM

進(jìn)程使用的物理內(nèi)存百分比

TIME+

進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒

COMMAND

命令名/命令行

top快捷鍵:

默認(rèn)3s刷新一次,按s修改刷新時(shí)間

按空格 :立即刷新。

q退出

P:按CPU排序

M:按內(nèi)存排序

T按時(shí)間排序

p: 進(jìn)程pid,查看某個(gè)進(jìn)程狀態(tài)

數(shù)字鍵1:顯示每個(gè)內(nèi)核的CPU使用率,展示cpu數(shù)量,再按下,就收起來了

u/U:指定顯示的用戶

h:幫助

例1:運(yùn)行top,依次演示一下top的快捷鍵,讓大家看一下效果

例2:使用TOP動(dòng)態(tài)只查看某個(gè)或某些進(jìn)程的信息

找到進(jìn)程PID

[root@localhost ~]# vim a.txt
[root@localhost ~]# ps axu | grep vim

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root 9667 0.0 0.2 143620 3344 pts/1 S<+ 19:15 0:00 vim a.txt

[root@localhost ~]# top -p 9667

10.2.3 實(shí)戰(zhàn)1:找出系統(tǒng)中使用CPU最多的進(jìn)程

運(yùn)行top , 找出使用CPU最多的進(jìn)程 ,按大寫的P,可以按CPU使用率來排序顯示

互動(dòng):在linux系統(tǒng)中一個(gè)進(jìn)程,最多可以使用100%cpu對(duì)嗎?

如下圖,可以看到dirtycow(臟牛漏洞,用于提權(quán)) 進(jìn)程使用196.8%

這是你第一次看見: 1

如果你的4核心的cpu,你可以運(yùn)行400%

64核心的cpu,可以運(yùn)行到6400%

10.2.4 lsof命令

lsof命令用于查看你進(jìn)程打開的文件,打開文件的進(jìn)程,進(jìn)程打開的端口(TCP、UDP)

-i<條件>:列出符合條件的進(jìn)程。(ipv4、ipv6、協(xié)議、:端口、 @ip )

-p<進(jìn)程號(hào)>:列出指定進(jìn)程號(hào)所打開的文件;

例:

[root@xuegod63 ~]# vim a.txt

[root@xuegod63 ~]# ps -axu | grep a.txt

root 43641 0.8 0.2 151744 5280 pts/3 S+ 18:19 0:00 vim a.txt

root 43652 0.0 0.0 112676 996 pts/1 S+ 18:19 0:00 grep --color=auto a.txt

[root@xuegod63 ~]# yum -y install lsof

[root@xuegod63 ~]# lsof -p 65641 #進(jìn)程pid一般用于查看木馬進(jìn)程,在讀哪些文件

[root@xuegod63 ~]# lsof -i :22 #查看端口,或查看黑客開啟的后門端口是哪個(gè)進(jìn)程在用

[root@xuegod63 ~]# lsof -c vim #進(jìn)程名,顯示vim進(jìn)程現(xiàn)在打開的文件

[root@xuegod63 ~]# lsof /test/.abc.txt.swp #顯示占用文件.abc.txt.swp的進(jìn)程

在這個(gè)示例中,用戶root正在其/test目錄中進(jìn)行一些操作。一個(gè) bash是實(shí)例正在運(yùn)行,并且它當(dāng)前的目錄為/test,另一個(gè)則顯示的是vim正在編輯/test下的文件。要成功地卸載/test,應(yīng)該在通知用戶以確保情況正常之后,中止這些進(jìn)程。 這個(gè)示例說明了應(yīng)用程序的當(dāng)前工作目錄非常重要,因?yàn)樗员3种募Y源,并且可以防止文件系統(tǒng)被卸載。這就是為什么大部分守護(hù)進(jìn)程(后臺(tái)進(jìn)程)將它們的目錄更改為根目錄、或服務(wù)特定的目錄的原因,以避免該守護(hù)進(jìn)程阻止卸載不相關(guān)的文件系統(tǒng)。

10.2.5 free顯示系統(tǒng)中可用內(nèi)存和已用內(nèi)存的數(shù)量

free命令查看內(nèi)存使用狀態(tài)

子選項(xiàng):

-b:以字節(jié)為單位表示。

-k:以KB為單位顯示,默認(rèn)是以KB為單位顯示。

-m:以MB為單位顯示。

-g:以GB為單位顯示。

[root@localhost ~]# free -m

total used free shared buff/cache available

Mem: 972 603 69 24 299 123

Swap: 2047 69 1978

其中:

第一行:total是總內(nèi)存量,used是已經(jīng)使用的內(nèi)存量,free是空閑的內(nèi)存,shared是多個(gè)進(jìn)程共享的內(nèi)存總數(shù),buffers是緩沖內(nèi)存數(shù),cache是緩存內(nèi)存數(shù)。默認(rèn)單位是KB。available 實(shí)際可用

(case 加速讀,buffers加速寫。)

第二行開始:total系統(tǒng)中有972MB的物理內(nèi)存,used是已經(jīng)使用的內(nèi)存數(shù)量。free是空閑的內(nèi)存數(shù)量。shared是多個(gè)進(jìn)程共享的內(nèi)存數(shù)量。buff/cache用來作為緩沖和緩存的空間,內(nèi)核會(huì)在內(nèi)存將要耗盡時(shí)釋放這部分內(nèi)存給其他進(jìn)程使用。availble:可使用空間,評(píng)估有多少內(nèi)存可用于啟動(dòng)新應(yīng)用程序,不包括swap,不同于free和cache字段。available字段考慮了頁緩存,而不是所有可回收的內(nèi)存。正因?yàn)檫@個(gè)原因所以通常free+buff/cache的數(shù)值要比available的數(shù)值大。

互動(dòng):執(zhí)行free命令查看系統(tǒng)狀態(tài),這一瞬間,當(dāng)前系統(tǒng),真正,還有多少M(fèi) 內(nèi)存可以使用?

答案1:free+ buff/cache=69 +299=368M

答案2:available=123M

10.3 前后臺(tái)進(jìn)程切換- nice進(jìn)程優(yōu)先級(jí)-screen后臺(tái)執(zhí)行命令 10.3.1 Linux后臺(tái)進(jìn)程與前臺(tái)進(jìn)程的區(qū)別

前臺(tái)進(jìn)程:是在終端中運(yùn)行的命令,那么該終端就為進(jìn)程的控制終端,一旦這個(gè)終端關(guān)閉,這個(gè)進(jìn)程也隨著消失

后臺(tái)進(jìn)程: 也叫守護(hù)進(jìn)程(Daemon),是運(yùn)行在后臺(tái)的一種特殊進(jìn)程,不受終端控制,它不需要終端的交互;Linux的大多數(shù)服務(wù)器就是用守護(hù)進(jìn)程實(shí)現(xiàn)的。比如,Web服務(wù)器httpd等。

10.3.2 進(jìn)程的前臺(tái)與后臺(tái)運(yùn)行

跟系統(tǒng)任務(wù)相關(guān)的幾個(gè)命令(了解):

& #用在一個(gè)命令的最后,可以把這個(gè)命令放到后臺(tái)執(zhí)行.

ctrl + z #將一個(gè)正在前臺(tái)執(zhí)行的命令放到后臺(tái),并且暫停.

jobs #查看當(dāng)前有多少在后臺(tái)運(yùn)行的進(jìn)程.它是一個(gè)作業(yè)控制命令

fg(foreground process) #將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行, 如果后臺(tái)中有多個(gè)命令,可以用 fg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)

bg(background process) #將一個(gè)在后臺(tái)暫停的命令,變成繼續(xù)執(zhí)行; 如果后臺(tái)中有多個(gè)命令,可以用bg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)

實(shí)戰(zhàn)恢復(fù)被掛起的進(jìn)程(了解)

例: vim a.txt 按下: ctrl+z

[root@xuegod63 ~]# vim a.txt #打開后,然后執(zhí)行 ctrl+z

[1]+ 已停止 vim a.txt

[root@xuegod63 ~]# ps -axu | grep vim

root 43710 0.8 0.2 151744 5304 pts/3 T 18:26 0:00 vim a.txt

root 43720 0.0 0.0 112676 984 pts/3 S+ 18:26 0:00 grep --color=auto vim

[root@xuegod63 ~]# jobs #查看當(dāng)前有多少在后臺(tái)運(yùn)行的進(jìn)程

[1]+ 已停止 vim a.txt

[root@xuegod63 ~]# fg 1 #將后臺(tái)掛起的進(jìn)程恢復(fù)到前臺(tái)運(yùn)行

10.3.3 kill關(guān)閉進(jìn)程

關(guān)閉進(jìn)程3個(gè)命令:kill killall pkill

kill關(guān)閉進(jìn)程:kill 進(jìn)程號(hào) 關(guān)閉單個(gè)進(jìn)程

killall和pkill 命令用于殺死指定名字的進(jìn)程

通過信號(hào)的方式來控制進(jìn)程的

kill -l =====> 列出所有支持的信號(hào)(了解) 用最多的是: 9 信號(hào)

信號(hào)編號(hào) 信號(hào)名

1) SIGHUP 重新加載配置

2) SIGINT 鍵盤中斷 crtl+c

3) SIGQUIT 退出

9) SIGKILL 強(qiáng)制終止

15) SIGTERM 終止(正常結(jié)束),缺省信號(hào)

18) SIGCONT 繼續(xù)

19) SIGSTOP 停止

20) SIGTSTP 暫停 crtl+z

例1: kill和killall終止進(jìn)程

[root@xuegod63 ~]# yum -y install psmisc

[root@xuegod63 ~]# kill -9 pid

[root@xuegod63 ~]# killall vim

[root@xuegod63 ~]# pkill vim

10.3.4 進(jìn)程的優(yōu)先級(jí)管理

優(yōu)先級(jí)取值范圍為(-20,19),值越小優(yōu)先級(jí)越高, 默認(rèn)優(yōu)先級(jí)是0

優(yōu)先級(jí)越高占用的CPU值就越高

命令1:nice 指定程序的運(yùn)行優(yōu)先級(jí)

格式:nice n command

命令2:renice 改變程序的運(yùn)行優(yōu)先級(jí)

格式:renice -n pid

例1:指定運(yùn)行vim的優(yōu)先級(jí)為5

[root@xuegod63 ~]# nice -n 5 vim a.txt

輸入內(nèi)容,然后ctrl+z 掛起

通過ps查看這個(gè)文件的PID號(hào)

[root@xuegod63 ~]# ps -aux|grep vim

通過top命令查看優(yōu)先級(jí)

[root@xuegod63 ~]# top -p 26154

改變正在運(yùn)行的進(jìn)程的優(yōu)先級(jí)

10.3.5 使用screen后臺(tái)實(shí)時(shí)執(zhí)行備份命令

實(shí)戰(zhàn)場(chǎng)景:公司晚上需要備份1T數(shù)據(jù),我在xshell上直接執(zhí)行備份腳本back.sh可以嗎? 或直接運(yùn)行back.sh & 放到后臺(tái)運(yùn)行可以嗎? 當(dāng)關(guān)了xshell后,back.sh & 還在后臺(tái)執(zhí)行嗎?

答:xshell長(zhǎng)時(shí)間連接,如果本地網(wǎng)絡(luò)偶爾斷開或xshell不小心關(guān)閉,都會(huì)讓后臺(tái)運(yùn)行的備份命令停止運(yùn)行的。正確做法使用: srceen

10.3.6 screen概述和安裝

Screen中有會(huì)話的概念,,用戶可以在一個(gè)screen會(huì)話中創(chuàng)建多個(gè)screen窗口,在每一個(gè)screen窗口中就像操作一個(gè)真實(shí)的te.NET/SSH連接窗口那樣。

安裝screen軟件包

# rpm -ivh /mnt/Packages/screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64.rpm

或者

[root@xuegod63 ~]# yum -y install screen

10.3.7 screen使用方法

直接在命令行鍵入screen命令回車,如下圖

[root@xuegod63 ~]# screen

Screen將創(chuàng)建一個(gè)執(zhí)行shell的全屏窗口。你可以執(zhí)行任意shell程序,就像在ssh窗口中那樣

例如,我們?cè)谧瞿硞€(gè)大型的操作但是突然之間斷開:

實(shí)戰(zhàn):使用screen后臺(tái)實(shí)時(shí)執(zhí)行命令備份命令

[root@xuegod63 ~]# screen #進(jìn)入

[root@xuegod63 ~]# vim a.txt #執(zhí)行命令, 或執(zhí)行你自己需要運(yùn)行的備份命令

此時(shí)想離開一段時(shí)間,但還想讓這個(gè)命令繼續(xù)運(yùn)行

[root@xuegod63 ~]# #在screen當(dāng)前窗口鍵入快捷鍵Ctrl+a+d

[detached from 44074.pts-3.xuegod63] #分離出來獨(dú)立的一個(gè)會(huì)話

detached [d??tæt?t] 分離,獨(dú)立

半個(gè)小時(shí)之后回來了,找到該screen會(huì)話:

[root@tivf06 ~]# screen -ls #查看已經(jīng)建立的會(huì)話ID

There is a screen on:

44074.pts-1.tivf06 (Detached)

1 Socket in /tmp/screens/S-root.

重新連接會(huì)話:

[root@xuegod63 ~]# screen -r 44074

root@xuegod63 ~]# exit #不想使用screen 會(huì)話了,執(zhí)行:exit退出。

附:常用screen參數(shù)

screen -S test -> 新建一個(gè)叫test的會(huì)話

screen -ls -> 列出當(dāng)前所有的會(huì)話

screen -r test -> 回到test會(huì)話

screen -S 會(huì)話id -X quit -> 刪除會(huì)話

screen -S 會(huì)話名 -X quit -> 刪除會(huì)話

總結(jié):

10.1 進(jìn)程概述和ps查看進(jìn)程工具

10.2 uptime查看系統(tǒng)負(fù)載-top動(dòng)態(tài)管理進(jìn)程

10.3 前后臺(tái)進(jìn)程切換- nice進(jìn)程優(yōu)先級(jí)-screen后臺(tái)執(zhí)行命令

分享到:
標(biāo)簽:Linux
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定