1、進程的含義
在 AIX 中所謂進程就是一個任務,一個正在運行的程序就是一個進程。
2、子進程與父進程
進程與進程可以存在依賴關系,一個進程可以產生新的進程,被產生出來的進程叫做子進程,而原來的進程叫做父進程。
3、查看進程
ps:進程查看命令
在 ps 命令中可以查看到有關進程的 UID(用戶 ID)、PID(進程的 ID)、PPID(父進程 ID)、C(cpu 利用率)、STIME(開始的時間)、TTY(控制台)、TIME(運行的時間)、CMD(命令)等等。
$ ps -f
UID PID PPID C STIME TTYTIME CMD
Xumin 15044 26436 0 17:17:15 pts/1 0:00-ksh
Xumin 27412 15044 6 17:18:04 pts/1 0:00ps -f
4、前台進程與後台進程
(1)前台進程
前台進程運行時,用戶必須等待當前進程結束,才能運行下一個進程。
前台進程的運行方式:
$ command
(2)後台進程
後台進程運行時,用戶不必等待當前後台進程的結束,即可以運行下一個進程。
後台進程的運行方式:
$ command &
5、提高進程優先等級
(1)nice:可增加 nice 的值,降低進程的優先級別。
$ nice [-lncrement | -n lncrement]
(2)renice:可再增加 nice 的值,以再降低進程的優先級別。
6、終止進程
(1)前台進程
ctrl-c:終止當前的前台進程
kill:終止指定的前台進程
(2)後台進程
kill:終止指定的後台進程
(3)kill 的用法
$ kill [ -Signalnumber | -Signalname ] Processes
常用:
$ kill ProcessesID
$ kill -9 ProcessesID
ProcessesID 為進程號,可以用 ps命令獲取
7、運行長進程
nohup:使用戶的後台進程在用戶退出系統時仍然運行,如果無指定 nohup 的輸出信息會將保存在 nohup.out 中
$ nohup command &
$ nohup ls -R / &
8、shell 環境下進程的控制
<ctrl-z> :暫停前台進程
jobs:顯示後台進程及被暫停的進程
fg:繼續被暫停的進程
bg :繼續被暫停的進程並將其放在後台運行
在 bg 、fg、kill 中指定一個進程,要使用%jobnumber,jobnumber 可以用jobs 來獲取
9、後台駐留程序 deamons
deamon 是一種永不停止的進程,通常用來管理和控制系統資源,如 qdeamon(打印管理)、cron(定時運行指定程序)、errdeamon(出錯管理)等等。
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/
10、顯示/修改進程屬性
進程的屬性主要包括進程的 ID 號、父進程的 ID 號、運行時間、執行的程序名和優先級等。
11、顯示進程屬性
要顯示進程的屬性可以使用 ps 命令,AIX支持所有 AT&T 和 BSD風格 ps 命令。
要使用 BSD 風格,只是簡單地把命令選項的減號去掉,例如:
# ps alx
上面命令的 AT&T 版本是:
# ps -elf
在 ps 命令輸出中,PRI 和 NI 值表示進程的優先級。nice 是計算 priorities 值的一部分, priorities 值的范圍是 0~ 127。值越低,進程越經常被安排執行,值越高意味著優先級越低。
12、修改進程優先級
要改變進程的優先級,可以使用 nice 命令。nice 命令後面可以跟 0~ 39 ,同樣也是值越高意味著優先級越低。 nice 命令句法有兩種形式: nice –Increment(增量)和 nice -n Increment(增量)。當必須使用負值時,可以用後者。如果不指定一個值,nice 缺省為增長 10。下列命令為一個命令增加 10 的優先級。
# nice -10 CommandName(命令名)
下列命令為一個命令減少 10 的優先級
# nice CommandName
renice 命令也提供-n 選項。renice 的句法為:
# renice Priority -p PID
如果沒有另外的選項被指定,那麼-p 可以不要。
13、停止進程
AIX 使用 kill 命令來停止進程。AIX 有兩種 kill 命令: /usr/bin/kill 和 shell 內建的命令 kill。這兩種命令可以使用的信號量不同。信號量用來通知進程執行相應的動作。例如: TERM 信號是強制進程退出,而 HUP 是強制進程掛起。可以用 kill -l的顯示可用的信號量。
# kill –l
AIX也有 killall 命令,任何用戶都能用來運行殺死除了發送的進程外所有進程。
句法是:
# killall –Signal
14、性能檢測
管理進程的目的是為了提高系統運行的性能,因此首先我們要檢測目前系統運行性能,分析系統性能的瓶頸。AIX 支持 topas ,sar, vmstat 和 iostat 等標准的UNIX 命令。
topas
采用動態刷新顯示系統性能信息,包括:系統的頂級進程, 系統狀態 ( 負擔的平均值 ),使用和釋放的存儲器數量,以及在系統上激活的單個的進程狀態。與 ps命令相比, ps 命令僅給出系統某一時刻的“快照”,而 topas 是按一定的時間間隔顯示系統信息和它們的變化。
sar
顯示累積的系統活動信息, 包括 CPU 利用率,緩沖區活動, 數據從設備讀出和讀入, 終端活動,正在使用的特定系統調用數目, 交換數量, 隊列長度,還有另外的核心信息。
vmstat
量化地顯示系統進程所使用的虛存數量;也顯示陷阱和 CPU 活動信息。
iostat
統計硬盤,終端,處理器的 I/O 情況。
15、進程的定時啟動
可以使用cron守候進程來定時啟動進程,該進程使用的crontab文件 在/var/spool/cron/crontabs 目錄中,以用戶名為文件名,比如 root 用戶的 crontab 文件就為 root。AIX支持 AT&T 風格 crontab 文件,每條包含下列格式:
分鐘( 0到 59 )
小時( 0到 23 )
月的日子( 1到 31 )
一年( 1 到 12 )
星期的日子( 0到 6,整個星期六到星期天)
shell 命令
AIX也可以直接調用 crontab 命令。crontab 命令有-e 選項,該選項將裝載 crontab的內容到編輯環境。使用何種編輯器取決於 EDITOR 變量值。一旦從編輯環境保存並且退出,將改變新 crontab 文件並且很快地生效。
正常情況下,crontab spool 目錄定義在/var/spool/cron。另外 AIX 有一個從/usr/spool到/var/spool 連接,這是操作系統為了保持與先前的版本兼容。
作者信息:51cto博客 Oracle小混子