第七講 進程
什麼是進程?
進程就是執行文件時候被寫入到內存中的信息。
每一個進程都經過一個惟一的進程號PID來惟一識別。(pidof program_name查找運行程序的PID)
PTS 僞終端 pseudoterminal 圖形界面下,沒有數量限制。 pts/X 用SSH遠程登陸會生成一個僞終端。
tty1-tty6 虛擬終端
ttyS0 計算機的console端口鏈接到的設備
PS 列出進程 ()
ps aux
其中:各行分別爲 : 用戶名 進程號 CPU利用率 內存利用率 虛擬內存佔用量 真實內存佔有量 所屬終端(?有些進程在開啓終端前啓動全部沒有終端名稱) 狀態(S、S 、Z殭屍程序 < + >進程喚醒的優先級) 開啓時間 持續時間 進程名稱
pgrep 按照名稱或其餘屬性來查看進程
pstree 以進程樹的方式顯示進程 init是全部進程的父進程。
進程沒有忠誠度,一段中止從新啓動以後進程號必定會改變
restart進程重啓,須要中止 reload進程重載進程不中止
在/proc/pid/下面 的oom_adj out of memeroy
more oom_adj (範圍)
-15時候 oom_score爲0殺死的可能性爲0,不可能被殺死
more oom_score
echo -15 > /proc/$(pidof vsftpd)/oom_adj 將vsftp的進程優先級設爲-15
信號
信號是系統和進程交互的指令
man 7 signal (查看完整的信號列表)
信號1,reload 重載配置文件。
信號9,kill 當即終止進程。
信號15 終端默認 正常終止。
eg: kill -15 27141
killall [-signal
] command eg:killall httpd
pkill [-signal
] pid/command
進程優先級(nice)
nice值默認狀況下爲0,取值範圍爲-20——19,數字越小優先級越高
調整進程優先級。
已經運行的進程調整其優先級:renice 15 pid
不曾運行的進程調整其優先級: nice -n 15 command
清空緩存 free -m sysctl -w vm.drop_cache
s
=3
普通用戶只能下降本身的優先級,只有root用戶才能夠提高本身的優先級
jobs 進程控制
top動態顯示系統進程
在運行的程序後面加一個 & 是將進程丟入後臺運行。eg:cp -r /usr/ /tmp/ &
ctrl+Z 講一個正在運行的進程丟入後臺運行
ctrl+C 中止運行當前的程序並丟入後臺 b
bg [%jobnumber] 將一個在後臺暫停的程序繼續在後臺運行
fg %jobnumber 將一個後臺運行的程序拉入前臺運行 + 默認啓動
kill %jobnumber殺死後臺某個程序
kill -19 pid 講一個運行的程序丟向後臺
怎樣查看後臺運行的進程
jobs kill %1
退出狀態
$?上一命令退出時候的返回結果,0表示成功,1-255表明失敗。exit [number]退出並將狀態設置爲num
command1 && command2 當地一條命令執行
成功
執行成功時候執行第二條命令
command1 || command2 當地一條命令執行
失敗
執行成功時候執行第二條命令
test命令(測試表達式是否正確)返回值0,表示真,返回值1,表示假。