Linux 伺服器系統管理第七章 行程管理  上一頁    下一頁

7-2 行程管理命令

內容:

  • 7-2-1 行程操作命令 - ps

  • 7-2-2 行程的關聯 - pstree

  • 7-2-3 行程中止 - kill

了解行程的概念之後,接下來介紹幾種行程的管理命令。

7-2-1 行程操作命令 - ps

(A) 命令格式

使用者可利用 psProcess status命令來觀察目前系統有哪些行程正在執行,也可藉由 ps 來了解執行中行程的狀態如何,命令格式如下:

$ ps [options]

常用選項有:

  • pids顯示指定 PID 的行程。

  • -e :顯示所有行程。

  • -l :長行顯示格式。

  • -f :顯示所有資訊。

  • -u :顯示某一使用者所產生的行程。

  • --sort:排序顯示。

以下藉由幾種操作範例來說明 ps 命令的使用方法,說明如下:

(B) 顯示自己的行程

使用者直接輸入 ps 命令後,可觀察到自己所下的行程如何,範例如下:

$ ps

 PID TTY          TIME CMD

30086 pts/0    00:00:00 bash

30145 pts/0    00:00:00 ps

其中:

  • PID行程識別碼,屬隨機產生。

  • TTY該行程所產生的終端機,pts/0 表示第 0 號虛擬終端機,也就是網路終端機。

  • TIME該行程已執行了多少時間。

  • CMD產生該行程的命令,也就是 Shell 的命令名稱。

(C) 顯示系統的行程

使用者如欲觀察整個系統目前有哪些行程正在執行,可增加其選項為 ps –ef,範例如下:

$ ps  -ef

ID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 Nov04 ?        00:00:03 init

root         2     1  0 Nov04 ?        00:00:00 [keventd]

….

root     30085 30084  0 14:46 ?        00:00:00 [login]

tsnien   30086 30085  0 14:46 pts/0    00:00:00 -bash

tsnien   30225 30086  0 17:24 pts/0    00:00:00 ps -ef

其中:

  • ID產生此行程的使用者 ID

  • PPID產生此行程的父行程 IDParent Process ID)。

  • STIME產生此行程的日期時間。

7-2-2 行程的關聯 - pstree

我們可利用 pstree 命令,以樹狀結構來觀察行程之間的關連(子行程與父行程),命令格式如下:

$ pstree  [options]

常用選項有:

  • -a顯示每個行程完整路徑。

  • -h :在樹狀結構中標示目前執行的行程。

  • -l :長行顯示格式。

  • -n :使用行程識別碼排序。

  • -u :顯示使用者名稱。

操作範例如下:

[tsnien@Secure-1 ~]$ pstree  -u

init─┬─acpid

     ├─atd

     ├─automount

     ├─avahi-daemon(avahi)───avahi-daemon

     ├─bluez-pin

     ├─bonobo-activati

     ├─clock-applet

     ├─crond

     ├─cups-config-dae

     ├─cupsd

     ├─dbus-daemon───{dbus-daemon}

     ├─dbus-daemon(dbus)───{dbus-daemon}

     ├─dbus-launch

     ├─eggcups

……

7-2-3 行程的中止 – kill

執行中的行程也可以被強迫中止,但一般使用者僅能刪除自己所產生的行程,不可以中止其他行程。而系統管理員(root 使用者)則享有最高權限,可中止任何行程,其中包含 initPID=1)行程。中止行程的命令為 kill,格式如下:

# kill [ -s signal | -p ] [ -n ] [ -- ] pid ...

常用選項有:

  • -n n 為大於 0 的整數,最高為 9,表示強制性的高低。

  • pid :行程的 PID

選項 n 表示強制性的多寡。行程在執行當中可能正在處理某一特定的工作,而此工作可能具有某些重要性的任務,它是否可以及時被刪除也可能需要思考一下。如果選項為 -9,則無論行程目前執行的工作有何等重要,都要及時被刪除,至於 -0 則需等待一段時間之後,才可以刪除該行程。中止行程必須指名欲被刪除行程的識別碼(PID),如果不知道的話,可利用 ps –ef 命令來查詢所欲刪除行程的 PID 號碼;強制刪除背景程式 vivim)的操作範例如下:

$ vi test.c &                             【產生一個背景行程】

[1] 19553

$ ps                                     【顯示自己的行程】

 PID TTY          TIME CMD

19341 pts/85   00:00:00 bash

19553 pts/85   00:00:00 vim

$ kill  -9  19553                            【刪除某一行程】

$ ps                                       【顯示刪除結果】

 PID TTY          TIME CMD

19341 pts/85   00:00:00 bash

19555 pts/85   00:00:00 ps

[1]+  Killed                  vim test.c

 

翻轉工作室:粘添壽

 

Linux 伺服器系統管理 - CentOS:

 

 

 

翻轉電子書系列: