Linux學習_程序管理
基本介紹
1.在LINUX中,每個執行的程式(程式碼)都稱為一個程序。每一個程序都分配一個ID號。 2. 每一個程序,都會對應一個父程序,而這個父程序可以複製多個子程序。例如www伺服器。 3.每個程序都可能以兩種方式存在的。前臺與後臺,所謂前臺程序就是使用者目前的螢幕上可以進行操作的。後臺程序則是實際在操作,但由於螢幕上無法看到的程序,通常使用後臺方式執行。 3. 一般系統的服務都是以後臺程序的方式存在,而且都會常駐在系統中。直到關機才結束。 基本引數
引數 | 功能 |
---|---|
ps -a | 顯示當前終端的所有程序 |
ps -u | 以使用者的格式顯示程序資訊 |
ps -x | 顯示後臺程序執行的引數 |
ps -e | 顯示所有程序 |
ps -f | 以全格式的方式顯示 |
顯示系統執行的程序
ps命令是用來檢視目前系統中,有哪些正在執行,以及它們執行的狀況。 可以不加任何引數.
ps檢視所有程序
[[email protected] ~]# ps -aux|more Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 2.7 0.0 19364 1540 ? Ss 13:39 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 13:39 0:00 [kthreadd] .......
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
使用者名稱 | 程序id | 程序佔用CPU的百分比 | 程序佔用實體記憶體的百分比 | 程序佔用的虛擬記憶體大小(單位:KB) | 程序佔用的實體記憶體大小(單位:KB) | 使用的終端 | 程序狀態,其中S-睡眠s-表示該程序是會話的先導程序N-表示程序擁有比普通優先順序更低的優先順序R-正在執行D-短期等待Z-僵死程序T-被跟蹤或者被停止等等 | 程序的啟動時間 | 佔用CPU的總時間 | 啟動程序所用的命令和引數 |
ps檢視單個程序
[[email protected] ~]# ps -aux | grep sshd
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 2394 0.0 0.0 66236 1196 ? Ss 13:40 0:00 /usr/sbin/sshd
root 2850 0.0 0.2 102084 4156 ? Ss 13:40 0:00 sshd: [email protected]/0
root 4581 0.0 0.0 103332 856 pts/0 S+ 17:18 0:00 grep sshd
ps檢視所有程序的父程序
下面的3號程序的父程序是2號程序,2號和1號沒有父程序,因為他們的PPID為0
[[email protected] ~]# ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:39 ? 00:00:01 /sbin/init
root 2 0 0 13:39 ? 00:00:00 [kthreadd]
root 3 2 0 13:39 ? 00:00:00 [migration/0]
......
ps檢視單個程序的父程序
ps -ef|grep xxx
[[email protected] ~]# ps -ef | grep sshd
root 2394 1 0 13:40 ? 00:00:00 /usr/sbin/sshd
root 2850 2394 0 13:40 ? 00:00:00 sshd: [email protected]/0
root 4729 2856 0 17:37 pts/0 00:00:00 grep sshd
- UID:使用者ID
- PID:程序ID
- PPID:父程序ID
- C:CPU用於計算執行優先順序的因子。數值越大,表明程序是CPU密集型運算,執行優先順序會降低;數值越小,表明程序是I/O密集型運算,執行優先順序會提高
- STIME:程序啟動的時間
- TTY:完整的終端名稱
- TIME:CPU時間
- CMD:啟動程序所用的命令和引數
終止程序kill和killall
若是某個程序執行一半需要停止時,或是已消耗了很大的系統資源時,此時可以考慮停止該 程序。使用kill命令來完成此項任務。
基本語法:
kill [選項] 程序號
(功能描述:通過程序號殺死程序)
killall 程序名稱
(功能描述:通過程序名稱殺死程序,也支援萬用字元,這在系統因負載過大而變得很慢時很有用)
常用選項:
-9
:表示強迫程序立即停止
案例: 案例一:踢掉某個非法登入使用者(比如踢掉xiaoming) 首先找到這個程序 然後kill掉就可以了 可以看到程序不見了,說明被幹掉了
案例二: 終止遠端登入服務sshd, 在適當時候再次重啟sshd服務 也是先找到然後按照程序號kill掉就可以了
案例三:終止多個gedit 編輯器
案例四:強制殺掉一個終端 先找到終端
檢視程序樹pstree
基本語法:
pstree [選項]
可以更加直觀的來看程序資訊
常用選項:
-p
:顯示程序的PID
-u
:顯示程序的所屬使用者
案例1:用樹狀的形式顯示程序的pid
案例2:用樹狀的形式程序的使用者id