2013年11月23日 星期六

Linux的工作管理員工具-ps, kill

使用Windows的時候有一個大家都必須熟知的快捷鍵 Ctrl + Alt + Delete,

──叫出工作管理員介面──

管理與監控我們目前執行中的程式,

那同樣的情境轉移到command line模式的Linux下該如何做到呢?


若要在Linux中查詢目前執行中的程式,

可以使用ps 這個指令,

ps的用途在說明中是用 report a snapshot of the current processes 來描述,

所以ps二字應該就是指 processes snapshot 的簡稱,跟PS遊戲機應該是沒甚麼關係,

如同其他Linux指令一樣,ps可用的參數有百百種,

其中常用的組合是

ps aux
說明中描述這組參數的功用如下:

-a 代表 all w/ tty except session leaders

-u 代表 by effective user ID 搜尋所有有效使用者的process
    不加u的話只會顯示目前使用者的process

x 代表 processes w/o controlling ttys

好吧,其實除了u以外另外兩個我也搞不清楚是啥東西,

只知道加了以後就能傳回許多有用的資訊,

包含

USER:執行此process的使用者

PID:此process的id,要強制刪除時會用到

%CPU:此process占用的CPU使用比率

%MEM:此process占用的記憶體使用比率

STAT:此process的執行狀態

START:此process開始執行的時間

COMMAND:建立這個process的指令




除了監控以外,我們有時候也需要強制停止某些程序,

比如程式當掉的時候,或是需要重新執行的時候,

透過ps aux,就可以取得所有執行中的程序,及其PID,找到我們要停止的程序後,

可使用 kill + PID 這個指令來停止程序,

比如說有一個程序PID是12345,我們要停掉它,就可如下指令終止它,

kill 12345
但有些時候程序無法正常終止,比如說一些不可中斷的程序或當掉的程序,

可以加入 -9 的參數強制終止它,

kill -9 12345
另外,執行kill是需要管理者權限的,所以如果不是root的話記得要加sudo在前面囉

沒有留言:

張貼留言