Linux中的進程:已經啟動的可執行的運行實例
1、PID:進程的ID(每一個新進程都有一個唯一的PID)
2、PPID:父進程的ID
3、任何一個進程都可以創建一個子進程
4、在redhat 7以上,所有進程的父進程:systemd
在redhat 5、6中,所有進程的父進程:init
ps顯示當前進程對的狀態(ps的參數非常多,man查看)
常用選項:
-aux:列出所有進程
-ef:列出所有進程
-l :列出和當前用戶有關的進程
-u 用戶:查看某一用戶的進程狀態
top:可以查看實時的進程狀態
在以上的ps中一些字母所代表的意義:
運行中:
R:該進程正在運行或等待運行
睡眠:
S:正在休眠但是可以被喚醒
D:正在休眠,而且不可以被喚醒,該進程被中斷,可能會導致設備的異常狀態
K:正在休眠,而且不可以被喚醒,該進程可以被中斷。
已停止:
T:進程被停止,但是可以通過其他進程來恢復
T:正在被調試的進程
僵停:
Z:子進程在退出時向父進程發出信號,除PID外,所有資源全部釋放
X:父進程獲取了子進程的結構,子進程可以完全釋放,該狀態進程中時看不到的
在ps -aux中
進程優先級:
1、< 高優先級
2、n 低優先級
3、s 包含子進程
4、+ 位於后台的進程組
ps -aux參數解釋
1、%CPU:占用的CPU使用率
2、%MEM:占用的記憶體使用率
3、VSZ:占用的虛擬記憶體大小
4、RSS:占用的記憶體大小
5、TTY:終端的次要裝置號碼(minor device number of tty)
6、STAT:該行程的狀態
7、START:進程開始的時間
8、TIME:執行的時間
9、COMMAND:所執行的指令
進程:Linux自身運行的獨立的程序
交互進程:由一個shell啟動的進程,可以在前台運行,也可以在后台運行
批處理進程:是一個進程序列,和終端沒有聯系
監控進程(守護進程):Linux系統啟動時,啟動的進程,並且在后台運行
作業:一個正在執行的進程,而且作業可以包含一個或多個進程。
作業控制:控制正在運行的進程的行為。如:掛起一個進程,等一會再執行。這樣用戶就可以在多個作業之間切換。
&:在任何命令后面使用該符號,可以讓命令在后台執行
jobs:可以查看正在后台運行的作業(前后台作業狀態)
-l:除了列出作業號外,同時列出PID
-r:列出僅在后台運行的作業
-s:列出僅現在后台暫停的作業
sleep: 延遲幾秒
ctrl + c:中斷
ctrl + z:掛起
fg:將后台的命令調到前台來繼續執行,不能繼續放回后台
%作業編號
bg:將后台暫停的命令繼續執行
%作業編號
ps -j :顯示當前作業進程信息
TGID:線程組ID號
SID:回話ID號
Linux中斷進程
信號:傳遞給Linux進程的操作
kill -l 顯示可以傳遞給Linux進程的所有信號
常用:
kill -9 PID :殺死iyge進程-強制
kill -15 PID:正常的方式終止一個進程
kill -2:與ctrl+c的操作是一樣的