Linux 進程管理經常使用命令總結

前言

面試說本身平時在 Linux 系統進行開發,瞭解一些 Linux 經常使用命令,而後就開始問,可是不會問經常使用的一些簡單命令,都是結合應用場景來進行提問。並且基本上是和進程管理結合的。抽時間進行一個全面的總結面試

應用場景

主要就是若是你使用 Linux 操做系統,那麼服務器若是是個很忙碌的系統,你確定要知道如何定位最耗資源的那個進程,而後可以將其殺死;此外,若是某個程序產生了一個有問題的進程在內存中,你又該如何找出並將其刪除;若是有五六項工做在系統中運行,但其中有一項工做纔是最重要的,你怎麼定位並使其優先執行?bash

  • 查看全部運行中的進程
  • 查看進程消耗資源
  • 定位個別進程而且對其執行指定操做
  • 改變進程優先級
  • 殺死指定進程
  • 限制進程可用的系統資源等

命令介紹

1. ps

指將某個時間點的進程運行狀況選取下來服務器

ps -ef |grep ^    列出須要進程 
ps -aux   顯示進程信息,包括無終端的(x)和針對用戶(u)的進程

-e 顯示全部進程。 
-f 全格式。 
-a 顯示終端上的全部進程,包括其餘用戶的進程。 
-r 只顯示正在運行的進程。 
-u 以用戶爲主的格式來顯示程序情況。 
-h 不顯示標題。 
-l 長格式。 
-w 寬輸出。
複製代碼
  • ps -l 僅查看本身的 bash 相關進程
  • ps aux 查看系統全部進程
    實例:找出與 cron 與 syslog 這兩個服務相關的 PID 號碼
leader@leader:~$ ps aux | egrep '(cron|syslog)'
複製代碼

2. pstree

  • 用於尋找進程之間的相關性
  • 查詢 PID 與所屬用戶,加上 -p 和 -u 兩個參數便可

範例一: 列出目前系統上全部進程樹的相關性ui

leader@leader:/tmp$ pstree -A
複製代碼

範例二:同時顯示 PID 和 usersspa

leader@leader:/tmp$ pstree -Aup
複製代碼

3. top

動態查看進程的變化
範例一:每兩秒更新依次 top,查看總體信息操作系統

leader@leader:~$ top -d 2
複製代碼

範例二:將 top 的信息進行 2 次,而後將結果寫入到 /tmp/top.txtcode

leader@leader:~$ top -b -n 2 > /tmp/top.txt
複製代碼

4. htop

htop 與 top 相似,可是 htop 是交互式的文本模式的進程查看器。它經過文字圖形化地顯示每個進程的 CPU 和內存使用量、swap 使用量。 使用上下光標鍵選擇進程,F7 和 F8 改變優先級,F9 殺死進程進程

5. nice

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

進程優先級值的範圍從-20到19。值越低,優先級越高。 (sudo)nice <優先值> <進程名>   經過給定的優先值啓動一個程序資源

6. renice

renice命令能夠改變正在運行的進程優先值,用戶只能改變屬於他們本身的進程的優先值。

renice -n 4 -p 3806   改變指定進程的優先值
//初始優先值爲0的3806號進程優先值已經變成了 4 .
sudo renice -3 -u/-g mint   經過指定用戶和組來改變進程優先值
//用戶爲 mint 的全部進程優先值變爲 -3。
複製代碼

7. kill

強制殺死進程,使用-9參數。
若是不知道進程PID(進程 ID 號)或者打算用名字殺死進程時候,使用 killall。
kill <pid>
kill -9 <pid>
killall -9  &ensp;&ensp; 殺死全部擁有一樣名字的進程
若是你使用kill,你須要知道進程ID號。pkill是相似的命令,但使用模式匹配,如進程名,進程擁有者等。
複製代碼

8.fg,bg

使用‘bg’命令能夠將任務放在後臺執行,而用‘fg’能夠調到前臺來使用。

咱們能夠經過‘&’在後臺啓動一個程序: 
    find .-name *iso >/tmp/res.txt & 
正在運行的程序,能夠經過「CTRL+Z」和「bg」命令組合放到後臺運行。

可使用‘jobs’命令列出全部後臺進程。 
使用‘fg’命令能夠將後臺程序調到前臺執行。 
   fg  %進程id
複製代碼
相關文章
相關標籤/搜索