日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux进阶之路————进程与服务管理

發(fā)布時(shí)間:2025/3/12 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux进阶之路————进程与服务管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引言

在Linux 中,每個(gè)執(zhí)行的程序(代碼)都成為一個(gè)進(jìn)程,Linux 為每一個(gè)進(jìn)程分配了一個(gè)唯一的 id 號(hào) - PID

每個(gè)進(jìn)程都會(huì)對(duì)應(yīng)一個(gè)父進(jìn)程,而這個(gè)父進(jìn)程可以復(fù)制多個(gè)子進(jìn)程,例如 www 服務(wù)器。

每個(gè)進(jìn)程都可能以兩種方式存在 - 前臺(tái)/ 后臺(tái),所謂前臺(tái)進(jìn)程就是用戶目前的屏幕上可以進(jìn)行操作的。后臺(tái)進(jìn)程則是實(shí)際在操作,但由于屏幕上無(wú)法看到的進(jìn)程,通常運(yùn)行在管理員無(wú)法感知的后臺(tái)。

一般系統(tǒng)服務(wù)都是以后臺(tái)進(jìn)程的形式存在,比如 sshd 服務(wù)進(jìn)程,其中的 d 代表 daemon (守護(hù)進(jìn)程),而且會(huì)常駐在系統(tǒng)中,如果不進(jìn)行特殊操作,一般只有在關(guān)機(jī)時(shí)才會(huì)終止。

一、顯示系統(tǒng)中的進(jìn)程列表

基本語(yǔ)法:

ps -aux

一般使用 ps 指令都會(huì)帶上參數(shù),-a 代表 all 所有進(jìn)程;-u 代表 user 以用戶格式顯示;-x 代表顯示后臺(tái)進(jìn)程運(yùn)行參數(shù)

字段詳解:

USER - 進(jìn)程的用戶名

PID - 進(jìn)程 ID

%CPU - 占用 CPU 百分比

%MEM - 占用物理內(nèi)存百分比

VSZ - 使用的虛擬內(nèi)存大小(單位:KB)

RSS - 使用的物理內(nèi)存大小(單位:KB)

TTY - 終端名稱,縮寫

STAT - 進(jìn)程狀態(tài),S - 睡眠,s - 表示該進(jìn)程是會(huì)話的先導(dǎo)進(jìn)程,N-表示進(jìn)程擁有比普通優(yōu)先級(jí)更低的優(yōu)先級(jí),R-正在運(yùn)行,D-短期等待,Z-僵死進(jìn)程,T-被跟蹤或被停止。

START - 進(jìn)程啟動(dòng)時(shí)間

TIME - 進(jìn)程占用 CPU 總時(shí)間

COMMAND - 進(jìn)程執(zhí)行時(shí)的命令行,過長(zhǎng)的話可能會(huì)截?cái)囡@示

另外,ps -aux 還可以通過管道符和過濾命令? “| grep 進(jìn)程名”? ?來(lái)專門查找指定進(jìn)程的詳情信息:

可以看到上面的途中,查看ssh 進(jìn)程的信息,顯示結(jié)果中,第一行是 sshd 后臺(tái)進(jìn)程,因?yàn)樗趩?dòng)時(shí)使用了 /usr/sbin/sshd 命令。而最后一行可以看到使用的是 grep ssh ,也就是我們正在查詢時(shí)開啟的一個(gè)進(jìn)程。第二和第三行是通過外部的 ssh 終端設(shè)備連接進(jìn)來(lái)而開啟的后臺(tái)進(jìn)程,第四行則是一個(gè) sftp 相關(guān)的后臺(tái)進(jìn)程。

有趣的是,如果我通過 kill -9 殺掉 3362 進(jìn)程,那么遠(yuǎn)程終端的文件視圖就會(huì)連接中斷,同時(shí)第四行的 sftp 后臺(tái)進(jìn)程也會(huì)終止:

終端命令行依然可以操作,由此可見進(jìn)程列表中顯示的信息與實(shí)際的進(jìn)程情況完全匹配。

二、查看父進(jìn)程

還有一種查詢進(jìn)程的方式是:

ps -ef

這句指令的意思是“全格式顯示所有進(jìn)程,包括父進(jìn)程”。一般也會(huì)配合 管道符 “|” 和 篩選指令 grep 、分頁(yè)指令 more 等一起使用。

PPID 就是父進(jìn)程的 PID 。

C 代表CPU 用于計(jì)算執(zhí)行優(yōu)先級(jí)的因子。數(shù)值越大,表名進(jìn)程是 CPU 密集型運(yùn)算,執(zhí)行優(yōu)先級(jí)會(huì)降低;數(shù)值越小,表名進(jìn)程是 IO 密集型運(yùn)算,執(zhí)行優(yōu)先級(jí)會(huì)提高。

STIME 進(jìn)程啟動(dòng)的時(shí)間

TTY? 終端名稱

TIME? CPU 占用時(shí)間

CMD? 啟動(dòng)進(jìn)程所用的命令和參數(shù)

三、終止進(jìn)程

基本語(yǔ)法:

kill? 參數(shù)? 進(jìn)程PID

常用參數(shù): -9。

Linux 中的 kill 指令用來(lái)終止指定進(jìn)程的運(yùn)行。

通常,終止一個(gè)前臺(tái)進(jìn)程只需要 Ctrl + C ,但是對(duì)于一個(gè)后臺(tái)進(jìn)程就需要使用 kill 指令,并且要先查看我們想要終止進(jìn)程的 PID。

我們來(lái)使用 man kill 來(lái)查看一下 kill? 的使用手冊(cè):

在描述中的第一段話意思是這樣的:

指令 kill 發(fā)送特定的信號(hào)給特定的進(jìn)程或進(jìn)程組。如果沒有指定信號(hào),那么就會(huì)發(fā)送 TERM 信號(hào)。TERM 信號(hào)會(huì)殺死那些沒有捕獲這個(gè)信號(hào)的進(jìn)程。對(duì)于其他的進(jìn)程,可能有必要使用 KILL(9) 信號(hào),因?yàn)檫@個(gè)信號(hào)不會(huì)被捕獲。

在 kill 說(shuō)明中有一個(gè)參數(shù) 是 -l? 可以列出所有的可發(fā)送信號(hào):

因此,kill -9 的含義就是強(qiáng)制殺死進(jìn)程。

四、服務(wù)管理

服務(wù)的本質(zhì)其實(shí)就是進(jìn)程,但是運(yùn)行于后臺(tái),通常會(huì)監(jiān)聽某個(gè)端口,等待其他程序的請(qǐng)求,比如mysqld,sshd 防火墻等,因此我們又稱為守護(hù)進(jìn)程

4.1 service指令

在CentOS 7之前都是通過 service 指令來(lái)管理后臺(tái)系統(tǒng)服務(wù),CentOS7 之后,采用systemctl 指令來(lái)進(jìn)行管理。這里講解 service 的用法,后期會(huì)針對(duì) CentOS 7 來(lái)進(jìn)程補(bǔ)充。

基本語(yǔ)法:

service? 服務(wù)名? start | stop | restart | reload | status

案例:查看Linux 防火墻的情況,關(guān)閉并重啟防火墻:

可以在宿主機(jī)終端采用 telnet 指令來(lái)檢查端口是否可以連接(國(guó)慶期間又裝了一個(gè) CentOS 6 ,ip 是200):

4.2 查看Linux自啟動(dòng)服務(wù)

在命令行輸入 setup 指令并回車即可查看系統(tǒng)自啟動(dòng)服務(wù):

服務(wù)名稱前面的 [ ] 內(nèi)如果有 * 號(hào),說(shuō)明此項(xiàng)服務(wù)屬于開機(jī)自啟。

除了這種方式,還可以通過/etc/init.d/服務(wù)名稱 文件來(lái)查看:

不過在這里好像只能看到系統(tǒng)都有哪些服務(wù)。

4.3 服務(wù)的運(yùn)行級(jí)別

在前面的文章中《Linux進(jìn)階之路————Linux運(yùn)行級(jí)別》中,總結(jié)了關(guān)于Linux 系統(tǒng)運(yùn)行級(jí)別的概念和知識(shí),這里服務(wù)的運(yùn)行級(jí)別也和之前的運(yùn)行級(jí)別是一脈相承的。

首先我們知道,Linux 的啟動(dòng)流程是如下所示的:

服務(wù)的運(yùn)行級(jí)別對(duì)應(yīng)著系統(tǒng)的運(yùn)行級(jí)別,如果系統(tǒng)當(dāng)前的運(yùn)行級(jí)別是3,那么5 運(yùn)行級(jí)別的服務(wù)就不會(huì)開機(jī)啟動(dòng),而需要手動(dòng)操作。

通過 chkconfig 指令可以給每個(gè)服務(wù)的各個(gè)運(yùn)行級(jí)別設(shè)置 自啟動(dòng)/ 關(guān)閉,設(shè)置之后即生效

常用語(yǔ)法:

chkconfig? --list | grep? 服務(wù)名? ?# 查看服務(wù)的運(yùn)行級(jí)別狀態(tài),過濾處理可選

?chkconfig 服務(wù)名 --list? # 查看某個(gè)服務(wù)的運(yùn)行級(jí)別狀態(tài)

?chkconfig? [--level? 運(yùn)行級(jí)別編號(hào)]? 服務(wù)名? on | off? ? ? # 在某個(gè)運(yùn)行級(jí)別下開啟或關(guān)閉自啟動(dòng),若不寫運(yùn)行級(jí)別,默認(rèn)全部

案例:關(guān)閉所有運(yùn)行級(jí)別下的防火墻服務(wù)的自啟動(dòng):

五、進(jìn)程監(jiān)控

Linux 使用 top 命令來(lái)進(jìn)行進(jìn)程監(jiān)控。

top 命令和 ps 命令有些類似,它們都用來(lái)顯示正在執(zhí)行的進(jìn)程,但二者又有不同,top 最大的特點(diǎn)在于可以定期刷新進(jìn)程列表中的狀態(tài)。

基本語(yǔ)法:

top [選項(xiàng)]

可選參數(shù):

-d 秒數(shù)? ? ? ? 指定top 命令刷新頻率,默認(rèn)是 3。

-i? ? ? ? ? ? ? ? ? ?不顯示任何閑置或者僵死進(jìn)程

-p? PID? ? ? ? ? 指定進(jìn)程ID 的進(jìn)程狀態(tài)

當(dāng)進(jìn)入到 top 的交互模式中時(shí),可以通過下面一些參數(shù),來(lái)與 top 命令進(jìn)行交互:

P? ? ? ? ? ? 以CPU 使用率排序,默認(rèn)是此項(xiàng)

M? ? ? ? ? ? 以內(nèi)存使用率排序

N? ? ? ? ? ? ?以 PID 排序

q? ? ? ? ? ? ? 退出 top 命令

輸入 top 命令可以顯示上圖中的信息,默認(rèn)每 3 秒刷新一次,如果按下交互鍵,在排序的同時(shí)可以立即刷新列表。輸入q 可以退出 top 。

上圖中,up 代表系統(tǒng)啟動(dòng)了多久,2 users 表示當(dāng)前用戶數(shù),load average 應(yīng)該是平均負(fù)載的意思。其余的選項(xiàng)可以網(wǎng)上搜索或見名猜意 (* ̄︶ ̄)。

六、網(wǎng)絡(luò)監(jiān)控

6.1 netstat?

網(wǎng)絡(luò)監(jiān)控采用 netstat 命令。

基本語(yǔ)法:

netstat [選項(xiàng)]?

常用參數(shù):

-an? ?按一定排序輸出

-p? ? ?顯示哪個(gè)進(jìn)程在調(diào)用

案例:查看sshd 的服務(wù)信息:

可以看到,如果sshd 服務(wù)是關(guān)閉的狀態(tài)的話,那么 netstat 也查詢不到 sshd 的網(wǎng)絡(luò)監(jiān)聽狀態(tài)。

6.2 ping

不論是Windows 還是 Linux ,這個(gè)命令都是通用的。它是一種檢測(cè)網(wǎng)絡(luò)的工具,可以快速查看遠(yuǎn)程主機(jī)是否可以連通,主機(jī)間的介質(zhì)是否為斷,網(wǎng)線是否脫落或網(wǎng)卡故障等。

如果兩臺(tái)主機(jī)之間可以正常通信,那么就會(huì)顯示上圖所示,如果通信異常,那么就不會(huì)顯示時(shí)間等信息。

綜上,就是關(guān)于系統(tǒng)服務(wù)相關(guān)的知識(shí)總結(jié),歡迎文末留言。

總結(jié)

以上是生活随笔為你收集整理的Linux进阶之路————进程与服务管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。