1. 程式人生 > >Linux學習_程序管理

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 在這裡插入圖片描述