程序描述:
程序是硬碟中程式**執行時的形態,程序是**的例項.產生程序的方法便是將**執行.
linux是多工的作業系統,也就是說系統核心啟動後,可以多個程序同時執行,或者呈現出多工同時執行的假象,多工的實現方法是基於時間上的輪循,即每個程序被cpu執行一段時間後替換為下一程序執行,或多程序是通過分配時間片實現的,將時間進行分片,時間也是物理量,同樣可被分片.多程序確實都是在同時執行,但是擁有了時間的程序才可以繼續演變.邏輯上的實現,物理上就是通過cpu執行時的輪循實現的.
多工的作業系統的實現:多工的實現方式可以分為協作式多工與搶占式多工,協作式多工應用在早期,
搶占式多工對多程序之間的輪循控制是通過優先順序實現的,在centos 4,5中系統一共有0-139共140個優先順序,而在centos6中共有0-99共100個優先順序。並且系統的優先順序採用nice值進行最終的修正,nice優先順序共有-20~+19共40個。最終的優先順序是通過nice值修正過的優先順序。
使用者可以改改變程序的nice值來修正最終的優先順序,在centos 45 中程式的初始優先順序為120 ,nice值為0,所以通過修改nice值 ,改變最終的優先順序的浮動範圍為100-139之間。
程序的分類:程序按照依賴關係可以分為,守護程序,前台程序。
守護程序:在系統啟動時通過init.d 啟動的程序。不需要依附在終端之上的程序。
前台程序:通過終端啟動的程序,需要依附終端。並且占用終端的程序。
前台程序與守護程序可以互相轉化。
程序按照硬體資源的占用可分為,cpu密集型,io密集型。
程序的狀態:執行態:running
就緒態:ready
睡眠態:
可中斷:interruptable
不可中斷:uninterruptable
停止態:stopped 暫停於記憶體,但不會被排程,除非手動啟動
僵死態:zombie 結束程序,副程序結束前,子程序不關閉。
程序檢視的工具:
ps
ps是乙個古老的滄桑的程序管理工具,ps支援多種風格的選項格式。
ps :顯示當前登入的終端上執行的程序。
unix風格的選項 如:-a -ef
-e顯示所有的程序
-f顯示所有程序的詳細資訊
-f顯示所有程序的更更更詳細的資訊
-h以帶有縮排的方式顯示程序,以體現出程序間的父子關係
-c顯示指定的程序的資訊
例:ps -c test.sh
注:當指令碼中不新增shebang時 -c無法檢視指令碼的程序資訊
-o顯示指定的屬性資訊
例:ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
bsd風格的選項 如:a aux
x顯示所有與終端無關,即不依附終端的的程序,比如守護程序。
u顯示程序所有者的資訊
f顯示資訊中進行縮排並用/\進行標示,以體現出程序的父子關係。
k以指定的屬性進行排序
例:ps axo stat,user,pid k pid
o顯示指定的屬性資訊
例:ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm,%cpu,%mem,user,pri
ruser:發起程序的使用者
pri:優先順序,但是為ps內部的優先順序。pri優先順序0 - +39對應nice優先順序 19 - -20 也就是是數值越大優先順序越高
ni:nice值
psr:processor cpu編號
rtprio :實時優先順序
gnu風格的選項 如: --help
ps aux 顯示的格式
[root@localhost ~]# ps aux |head
user
pid
%cpu
%mem
vsz
rss
tty
stat
start
time
command
使用者 id cpu佔用率 記憶體佔用率 承諾的記憶體 實際占用的記憶體 該程序依附的終端 狀態 程序的建立時間 程序實際占用cpu的時間 程序的名稱
注:此時顯示的使用者並非是發起程序的使用者,而是實際生效的使用者,比如suid許可權程式的屬主。
ps顯示stat的狀態種類:
r:running 正在執行中的程序
s:interruptable sleeping
d:uninterruptable sleeping
t:stopped
z:zombie
+:前台程序
l:多執行緒程序
l:記憶體分頁並帶鎖
n:低優先順序程序
<:高優先順序程序
s:session leader 會話(子程序)發起者
pstree
以樹狀結構顯示程序資訊,顯示的資訊中使用{}進行表示的是執行緒資訊。
-p :顯示程序的pid
top
在字元介面以互動的方式顯示當前系統中的 負載資訊,程序資訊,
選項,執行top時指定
-d 指定重新整理時間的間隔,預設為3秒鐘
-b 顯示所有的程序 ,在不指定-b選項時,只顯示一屏資訊。
-n 指定重新整理次數,到達指定次數後退出。
全域性顯示設定,同樣在執行時輸入
s 修改重新整理時間間隔
指定top顯示程序的排序,在程式執行時輸入
p按照佔據cpu的百分比進行排序 ,即顯示%cpu的欄
m按照佔據記憶體的百分比進行排序,即顯示%mem的欄
t按照積累佔據cpu的時長,即顯示time+的欄
指定top顯示的頭部資訊的格式,同樣在程式執行輸入,實現顯示模式的切換,模式中包括不顯示模式,
l系統執行時間 平均負載的資訊切換。即第一行。
t tasks與%cpu 的顯示資訊顯示模式切換,第二行與第三行
m memory資訊 ,即記憶體資訊顯示模式切換,第四行與第五行
1 切換顯示的cpu,在具有多顆cpu時有意義,第三行
其他操作
k 終止指定的程序,預設是指定cpu佔用率最高的
w 儲存檔案
退出 q
top 的介面資訊如下:
htop
彩色的 top
glances
glances 來自epel源,實現檢視遠端主機的程序資訊。
nice
指定程式的nice值
例: nice -n -20 ping 10.1.1.1 指定ping程式的nice值為-20.相當於系統優先順序的 120+(-20)=100
nice -20 ping 10.1.1.1 指定ping程式的nice值,-20 -識別為選項。所以優先順序會設定為20 但是nice的優先順序最大只能為19,所以最終的nice值為19
nice –20 成功的指定nice值為20 -為選項 -20為nice值 ,但是命令要規範
pgrep
按照命令的指定的方式顯示程序
-u 程序的最終生效者
-u 程序的真正發起者
-t terminal 與指定終端相關的程序
-l 顯示程序名稱
-a 顯示完整格式的程序名稱
-p 顯示指定程序的子程序
pidof
顯示指定程序的id
可以用於指令碼中判斷程式是否已經啟動,在指定程式沒有啟動時,$?為非零值
例: pidof http 顯示http的程序id號
if pidof http 使用if語句判斷 http服務是否已經執行
pmap
顯示程序對應的記憶體對映,等價於 cat/proc//maps
-x 顯示詳細格式的資訊
adb ps shell 檢視程序 adb工具
adb devices 檢視已連線的裝置。舉例 adb devices 如果按了回車後出現一段字母數字組合就說明裝置連線成功了!adb push 推送檔案到裝置 adb push 電腦檔案路徑 手機目標路徑 push 推 adb pull c a.txt sdcard 舉例 在不進入裝置shell的...
Linux 程序樹檢視工具 pstree
pstree 是 linux 下的乙個用於展示程序樹結構的工具,類似於 tree 展示目錄樹一樣,視覺化地檢視程序的繼承關係。pstree 工具其實是 psmisc 工具集的成員之一,psmisc 工具集由 4 個實用的 linux 程序管理工具 通過 linux 的 proc 檔案系統實現 組成 ...
Linux如何檢視埠及程序
方法一 1.通過lsof命令檢視pid 1.1 簡單而實用的檢視 lsof i 8080 1.2 ipv4 ipv6 lsof pnl m i4 i6 也可以使用 lsof pnl m i4 i6 grep 8080 lsof list open files 是乙個列出當前系統開啟檔案的工具。在li...