linux進程管理

linux進程管理

毫無疑問進程管理是很重要的,當咱們的操做系統很忙碌,運行的進程不少,可是可能有好幾個進程是沒有用的,那麼咱們是否是要找出這樣的進程而後結束它。若是有不少個沒用的進程一直在內存中,致使內存使用量過大,後面的進程可能就會沒有辦法執行。
例如,當咱們要定時執行某一個腳本任務,可是,若是腳本執行完進程並無退出,而你的執行頻率又很快,幾分鐘或者幾秒鐘,那可就悲劇了,走過的坑。。。node

ps命令

ps命令是process status的縮寫,它會列出內存中正在運行的程序的運行狀況的快照。ps命令能夠跟不少參數來過濾咱們須要查看的某個或者某些進程。linux

1.列出內存中的全部程序
ps -aux
2.列出指定用戶的進程
ps -u root
3.列出進程信息的指定字段
ps -o pid
4.排序

按內存佔用量排序操作系統

ps auxw --sort=rss
5.取前十條
ps auxw --sort=rss|head -10

過濾

ps -aux|grep node

返回的參數含義

%MEM: 佔用的物理內存百分比

VSZ: 佔用的虛擬內存量

RSS: 佔用的實際內存量

top命令

相對於ps選取某個時間點的進程狀態,top能夠持續的檢測進程的運行狀況。
top後面常跟的幾個參數code

  1. -d後面能夠跟描述,表示多長時間更新一次時間。對象

  2. -n表示須要進行幾回top輸出。排序

  3. -p查看某個PID的運行狀況。進程

top在執行過程當中能夠執行一些命令。圖片

  1. P 以CPU的使用資源多少排序顯示。內存

  2. N 以PID來排序。資源

  3. M 之內存的使用排序。

  4. k 給予某個PID一個信號。

  5. r 重置某個PID的nice值。

  6. q 離開top。

進程的管理

咱們不單單要查看進程,並且要對進程進行管理,那麼進程之間是如何相互管理的呢,細想下來,只要涉及到管理,確定要發出指令,對程序的管理也不例外。經過賦予某個進程一個信號告訴進程你想要作的事就能夠啦。咱們能夠經過kill -l查看全部的指令及其代號。
圖片描述

這裏咱們列出主要的幾個:

  1. sighup啓動被終止的命令。(1)

  2. sigint終止一個進程, 相似於鍵盤輸入ctrl + c。(2)

  3. sigkill強制終端一個進程,若是該進程運行到一半,也會中止。(9)

  4. sigterm正常結束一個進程。(15)

  5. sigstop至關於鍵盤輸入ctrl + z來暫停一個進程的進行。(17)
    下面補充一下ctrl[C, Z]的區別。

ctrl-c 發送 SIGINT 信號給前臺進程組中的全部進程。經常使用於終止正在運行的程序。
ctrl-z 發送 SIGTSTP 信號給前臺進程組中的全部進程,經常使用於掛起一個進程。

而命令的執行是須要有一個通知者和接受對象的
kill -signal PID kill命令會將signal這個指令發送給該PID。

free命令

free

uname命令系統資源查看

參數

  1. -a列出系統相關信息,包括如下信息都列出來。

  2. -s系統內核名稱。

  3. -r內核的版本。

  4. -m系統硬件名稱。

  5. -i硬件平臺。

uptime命令查看系統啓動時間與工做負載。

相關文章
相關標籤/搜索