linux程序管理1.什麼是程序?
程序是乙個作業系統的基本概念,至於程序是什麼不同人回答的可能也都有所出入,我的理解程序就是程式的一次動態執行,在這個過程中作業系統對它進行資源分配管理從而確保程式的正確執行,從程式開始執行到凋亡整個過程就是程序,但是程序不是程式這個一定要搞清楚。
2.程序有哪幾種狀態?
o:程序正在處理器執行.
s:休眠狀態(sleeping)
r:等待執行(runable)r running or runnable (on run queue) 程序處於執行或就緒狀態
i:空閒狀態(idle)
z:殭屍狀態(zombie)
t:跟蹤狀態(traced)
b:程序正在等待更多的記憶體頁
d:不可中斷的深度睡眠,一般由io引起,同步io在做讀或寫操作時,cpu不能做其它事情,只能等待,這時程序處於這種狀態,如果程式採用非同步io,這種狀態應該就很少見到了
3.檢視程序
ps 程序檢視工具
-a shell中執行的程序
-x 不在shell重執行的程序
-u 檢視程序使用者
-l 顯示程序的詳細資訊
-f 完全資訊full的縮寫
-e 顯示程序的依賴關係
ps -aux |grep 程序關鍵字
ps ax -o %cpu,%mem,user,pid,comm ##檢視程序某項資訊
ps aux --sort +|-%cpu|%mem... ##程序按指定方式排序
f:代表這個程式標誌,說明這個程式的許可權,常見號碼有:
若為 4 表示此程式的許可權為 root ;
若為 1 則表示此子程式僅進行複製(fork)而沒有實際執行(exec)。
s:代表這個程式的狀態 (stat),主要的狀態有:
uid/pid/ppid:代表此程式被該 uid 所擁有/程式的 pid 號碼/此程式的父程式 pid 號碼』
c:代表 cpu 使用率,單位為百分比;
pri/ni:priority/nice 的縮寫,代表此程式被 cpu 所執行的優先順序,數值越小代表該程式越快被 cpu 執行。
addr/sz/wchan:都與記憶體有關,addr 是 kernel function,指出該程式在記憶體的哪個部分,如果是個 running 的程式,一般就會顯示-/ sz 代表此程式用掉多少記憶體 / wchan 表示目前程式是否執行中,同樣的, 若為 - 表示正在執行中。
tty:登陸者的終端機位置,若為遠端登陸則使用動態終端介面 (pts/n);
time:使用掉的 cpu 時間,注意,是此程式實際花費 cpu 執行的時間,而不是系統時間;
cmd:就是 command 的縮寫,造成此程式的觸發程式之命令為何
4.程序的優先順序
從上面的檢視程序的時候我們看到兩個欄位pri和ni,
這兩個字段反映的是程序的優先順序nice值(ni)是靜態優先順序
priority(pri)是動態優先順序 在核心中,程序優先順序的取值範圍是通過乙個巨集定義的,這個巨集的名稱是max_prio,它的值為140。而這個值又是由另外兩個值相加組成的,乙個是代表nice值另乙個是代表實時程序(realtime)優先順序範圍的max_rt_prio巨集。說白了就是,linux實際上實現了140個優先順序範圍,取值範圍是從0-139,這個值越小,優先順序越高。nice值的-20到19,對映到實際的優先順序範圍是100-139。(值越小程序優先順序越高)
更多關於程序優先順序參考
檢視nice值: ps ax -o pid,nice,comm
開始執行程式時指定nice值:
nice -n 優先順序數字 程序名稱
example: nice -n -5 /usr/local/mysql/bin/mysqld_safe ###開啟mysqld_safe並且指定程式優先順序為-5
修改已存在程序的nice值:
renice -n 優先順序數字 程序pid
example:renice -n -10
3000
###pid為3000的程序nice設為-10
5.程序的前後臺呼叫
命令& ##程序在shell後台執行
ctrl +z ##把占用shell的程序打入後台停止
jobs ##檢視被打入後台的程序資訊
fg job號 ##把指定程序調回前台
bg job號 ##執行後台停止程序
ctrl +c ##關閉占用shell程序
kill和 killall命令
kill 訊號 pid
killall 訊號 程序名稱
pkill -u username ##結束某個使用者的所有程序
訊號
訊號 1
##reload程序
訊號 2
##ctrl +c 刪除程序在記憶體中的資訊
訊號 3
##記憶體中的滑鼠資訊清除
訊號 9
##強行關閉程序
訊號 15
##正常關閉程序
訊號 18
##開啟停止的程序
訊號 19
##停止正在執行的程序
訊號 20
##ctrl +z
列出所有訊號名稱 kill -l
LINUX程序管理
1.程序是什麼?乙個程序就是出於執行期的程式,包括 可執行程式 段 開啟的檔案,掛起的訊號,核心內部資料,處理器狀態,位址空間,乙個或多個執行執行緒,當然還包括用來存放全域性變數的資料段,等等.2.什麼是執行緒?它和程序的關係是什麼樣的?執行緒在linux中具體是怎麼樣實現的?是在程序中活動的物件,...
linux程序管理
程序的監控 使用ps aux 檢視當前所有程序。可以使用top檢視當前程序自動更新列表,在top中m 按記憶體大小排列,p 按cpu佔用率排列 終止和管理程序 程序之間通過訊號來進行通訊 top和kill都用於向程序傳送訊號。kill l顯示訊號編號表。kill 9 pid kill pid 向pi...
Linux 程序管理
1.linux程序管理工具,包括ps pgrep top kill killall pkill 等 常用 ps aux 或lax輸出的解釋 user 程序的屬主 pid 程序的id ppid 父程序 cpu 程序占用的cpu百分比 mem 占用記憶體的百分比 ni 程序的nice值,數值大,表示較少...