12個Linux進程管理命令介紹

爲了管理這些進程,用戶應該可以:linux

●查看全部運行中的進程shell

●查看進程消耗資源負載均衡

●定位個別進程而且對其執行指定操做性能

●改變進程的優先級教程

●殺死指定進程隊列

●限制進程可用的系統資源等進程

Linux提供了許多命令來讓用戶來高效掌控上述的操做。接下來,一個一個的來說解下。ip

1.ps內存

'ps'是Linux 中最基礎的瀏覽系統中的進程的命令。能列出系統中運行的進程,包括進程號、命令、CPU使用量、內存使用量等。下述選項能夠獲得更多有用的消息。資源

ps -a - 列出全部運行中/激活進程

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

ps -ef |grep - 列出須要進程
ps -aux - 顯示進程信息,包括無終端的(x)和針對用戶(u)的進程:如USER, PID, %CPU, %MEM等

2.pstree

linux中,每個進程都是由其父進程建立的。此命令以可視化方式顯示進程,經過顯示進程的樹狀圖來展現進程間關係。若是指定了pid了,那麼樹的根是該pid,否則將會是init(pid: 1)。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

3.top

‘top’是一個更加有用的命令,能夠監視系統中不一樣的進程所使用的資源。它提供實時的系統狀態信息。顯示進程的數據包括PID、進程屬主、優先級、%CPU、%memory等。可使用這些顯示指示出資源使用量。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

4.htop

htop與top很相似,可是htop是交互式的文本模式的進程查看器。它經過文字圖形化地顯示每個進程的CPU和內存使用量、swap使用量。使用上下光標鍵選擇進程,F7和F8改變優先級,F9殺死進程。Htop不是系統默認安裝的,因此須要額外安裝。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

5.nice

經過nice命令的幫助,用戶能夠設置和改變進程的優先級。提升一個進程的優先級,內核會分配更多CPU時間片給這個進程。默認狀況下,進程以0的優先級啓動。進程優先級能夠經過top命令顯示的NI(nice value)列查看。

進程優先級值的範圍從-20到19。值越低,優先級越高。

nice <優先值> <進程名> - 經過給定的優先值啓動一個程序

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

上述命令例子中,能夠看到‘top’命令得到了-3的優先值。

6.renice

renice命令相似nice命令。使用這個命令能夠改變正在運行的進程優先值。注意,用戶只能改變屬於他們本身的進程的優先值。

renice -n -p - 改變指定進程的優先值

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

初始優先值爲0的3806號進程優先值已經變成了4。

renice -u -g - 經過指定用戶和組來改變進程優先值

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

上述例子中,用戶爲‘mint’的全部進程優先值變爲‘-3’。

7.kill

這個命令用於發送信號來結束進程。若是一個進程沒有響應殺死命令,這也許就須要強制殺死,使用-9參數來執行。注意,使用強制殺死的時候必定要當心,由於進程沒有時機清理現場,也許寫入文件沒有完成。若是咱們不知道進程PID或者打算用名字殺死進程時候,killall就能派上用場。

kill <pid>
kill -9 <pid>
killall -9 - 殺死全部擁有一樣名字的進程

若是你使用kill,你須要知道進程ID號。pkill是相似的命令,但使用模式匹配,如進程名,進程擁有者等。

pkill <進程名>

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

8.ulimit

該命令用於控制系統資源在shell和進程上的分配量。對於系統管理員是最有用的,能夠管理重度使用和存在性能問題的系統。限制資源大小能夠確保重要進程持續運行,其餘進程不會佔用過多資源。

ulimit -a - 顯示當前用戶關聯的資源限制

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

-f :最大文件尺寸大小

-v :最大虛擬內存大小(KB)

-n :增長最大文件描述符數量

-H :改變和報告硬限制

-S :改變和報告軟限制

瀏覽ulimit man頁面獲取更多選項。

9.w

w 提供當前登陸的用戶及其正在執行的進程的信息。顯示信息頭包含信息,如當前時間、系統運行時長、登陸用戶總數、過去的1,5,15分鐘內的負載均衡數。

基於這些用戶信息,用戶在終止不屬於他們的進程時要當心。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

who是相似命令,提供當前登陸用戶列表、系統啓動時間、運行級別等。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

whoami 命令輸出當前用戶ID

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

10.pgrep

pgrep的意思是"進程號全局正則匹配輸出"。該命令掃描當前運行進程,而後按照命令匹配條件列出匹配結果到標準輸出。對於經過名字檢索進程號是頗有用。

pgrep -u mint sh

這個命令將會顯示用戶爲‘mint’和進程名爲‘sh’的進程ID。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

11.fg , bg

有時,命令須要很長的時間才能執行完成。對於這種狀況,咱們使用‘bg’命令能夠將任務放在後臺執行,而用‘fg’能夠調到前臺來使用。

咱們能夠經過‘&’在後臺啓動一個程序:

find . -name *iso > /tmp/res.txt &

一個正在運行的程序也能夠經過「CTRL+Z」和「bg」命令組合放到後臺運行。

find . -name *iso > /tmp/res.txt & - 啓動一個程序
ctrl+z - 掛起當前執行程序
bg - 將程序放到後臺運行

咱們可使用‘jobs’命令列出全部後臺進程。

jobs

使用‘fg’命令能夠將後臺程序調到前臺執行。

fg %進程id

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

12.ipcs

ipcs命令報告進程間通訊設施狀態。(共享內存,信號量和消息隊列)

用-p參數聯合-m、-s或-q使用,能夠得到相關的進程間通訊的進程ID。

ipcs -p -m

下面屏幕截圖列出了最近訪問了共享內存段的進程的建立者的ID和進程ID。

12個Linux進程管理命令介紹12個Linux進程管理命令介紹

總結

總之 ,這些命令能夠幫助管理員修復問題和改善性能。一樣做爲一名普通用戶也須要解決進程出現的問題。因此,熟悉如此繁多的命令,從能有效管理進程是行之有效。

免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/

相關文章
相關標籤/搜索