進程:是操作系統中的一種抽象概念,用來表示正在運行的程序
進程有多個屬性參數:PID、PPID、UID、GID等
例子:手動創建一個
後台程序,並通過
kill殺死它,前台程序可以Ctrl+C殺死
1.在主目錄中用文本編輯器創建一個名為badpro的文本文件,包含如下內容:
#! /bin/bash
while echo "I'm making files!!!"
do
mkdir adir
cd adir
touch afile
sleep 2s(不能忘,否則,必須使用rm -fr adir來刪除這些“垃圾”目錄)
done
2.將這個文件加上可執行權限,並從後台執行。
chmod +x badpro
./badpro & (將命令放到一個工作隊列中,可以用命令“jobs”查看)
3.程序運行起來了,運行ps命令查看這個程序的PID號(PID號用於唯一表示一個進程);
ps aux
| grep badpro
ps 查看所有運行的程序
ps -aux ##可以看到所有運行的程序與
grep連用篩選
ps -a ##顯示現行終端機下的所有程序(包括其他用戶的程序)
ps -u ##以用戶為主的排序顯示(username)
ps -x ##顯示所有程序(包括所有終端機下的)
4.使用kill命令“殺死“這個進程。
kill 12794 ( PID );
5.回到運行badpro的終端,可以看程序已被終止,最後刪除建立的目錄和文件
rm -r adir
1.查看所有運行的程序:ps
ps -aux ##可以看到所有運行的程序與
grep連用篩選
ps -a ##顯示現行終端機下的所有程序(包括其他用戶的程序)
ps -u ##以用戶為主的排序顯示(username)
ps -x ##顯示所有程序(包括所有終端機下的)
ps aux | grep badpro ##篩選出帶有badpro關鍵字的進程
("-"可以省略)
ps lax ##可以提供進程ID(PPID父進程)和 謙讓度(NI)不需要顯示屬主用戶名,所以速度更快
ps zux 命令產生進程信息的各種字段含義:
字段
含義
USER
進程創建者的用戶名
PID
進程的ID號
%CPU
進程占用的CPU百分比
%MEM
進程占用的內存百分比
VSZ
進程占用的虛擬內存的大小
RSS
內存中頁的數量(頁是管理內存的單位,在PC上通常為4K
TTY
進程所在終端的ID號
STAT
進程狀態,常用的字母代表含義如下:
R 正在運行/可運行 D 睡眠中(不可被喚醒,通常是等待I/O設備)
S 睡眠中(可以被喚醒) T 停止(由於收到信號或被跟蹤)
Z 僵進程(已經結束而沒有釋放系統資源的進程)
常用的附加標准:
< 進程擁有比普通優先級高的優先級
N 進程擁有比普通優先級低的優先級
L 有些頁面被鎖在內存中
s 會話的先導進程
START
進程啟動的時間
TIME
進程已經占用的CPU時間
COMMAND
命令的參數
2.即時跟蹤進程信息:top
top ##命令顯示的信息會占滿一頁,並且在默認情況下每10s更新一次。那些使用CPU最多的程序會排在最前面。
q ##退出
3.查看占用文件的進程:lsof
lsof database.doc
4.向進程發送信號:kill(只是用來向進程發送一個信號)
kill [-signal] pid
kill pid 等同於
kill -TERM pid 或
kill -SIGTERM pid 或
kill -15 pid(SIG可以省略)
kill -INT 等同於快捷鍵
Ctrl+C
常用的信號
信號編碼
信號名
描述
默認情況下執行的操作
0
(SIG)EXIT(
SIG可以省略)
程序退出時收到該信號
終止
1
(SIG)HUP
掛起
終止
2
(SIG)INT
中斷
終止
3
(SIG)QUIT
退出
終止
9
(SIG)KILL
殺死
終止
11
(SIG)SEGV
段錯誤
終止
15
(SIG)TERM(
默認,不寫)
軟件終止
終止
取決於硬件體系
USR1
用戶定義
終止
取決於硬件體系
USR1
用戶定義
終止
注意:在程序的開頭加入命令“
trap "" TERM”用於忽略TERM信號,如下:
#! /bin/bash
trap "" TERM
while echo ... ...
但是
KILL信號是永遠不會被程序
捕獲的,可以用該信號結束進程
5.調整進程的謙讓度:nice 和 renice
謙讓度 IN 的范圍:-20~+19
nice命令可以在啟動程序時設置其謙讓度,設置
相對值
renice命令可以在進程運行時調整其謙讓度,設置
絕對值
nice -n 2 bc ##設置bc以謙讓度
增量2 啟動
nice bc ##不帶-n時,會將程序的謙讓度
增量設置為
10
renice +12
-p [PID] ##將bc的
,
-p 選項指定進程的PID
6./PROC文件系統
/PROC目錄下存放著
內核有關系統狀態的各種有意義的信息。在系統運行時,內核會隨時向這個目錄寫入數據。ps和top命令就是從這個地方讀取數據的。事實上,這是操作系統向用戶提供的一條通往內核的通道,用戶甚至可以通過向/proc目錄下的文件寫入數據來修改操作系統參數