1. 程式人生 > >linux-程序管理

linux-程序管理

  1. 什麼是程序
    程序是一個程式一次執行的過程,它和程式有本質區別。
    程式:放置在儲存媒體中(如磁碟,光碟,軟盤,磁帶),以實體檔案的形態存在。
    程序:程式被觸發後,執行者許可權與屬性,程式的程式碼與所需資料等都會被載入記憶體中,作業系統給與這個記憶體中的單元一個標識碼(PID),可以說,程序就是一個正在執行中的程式。

  2. 程序狀態
    R(Running):該程式正在執行中:
    S(Sleep):該程式目前正在睡眠狀態(idle),但可以被喚醒(signal);
    D:不可被喚醒的睡眠狀態,通常程序可能在等待I/O的情況;
    T(Stop):停止狀態,可能是在工作控制或出錯狀態;
    Z(Zomble):殭屍狀態,程式已經終止但無法被移除之記憶體外;

  3. 檢視程序

  • 圖形方式檢視
 			gnome-system-monitor
  • 檢視命令
           ps :靜態檢視程序資訊
	ps	 -A			##顯示所有程序。與-e具有相同效用
		 -a 			##不包含環境資訊的所有執行程序,
		 -u			##顯示程序使用者資訊
		 a			##顯示在當前環境中執行的程式
		 x			##列出系統中所有執行包含tty輸出裝置
	     	 f			##顯示程序的父子關係
		 e 			##顯示程序的詳細資訊(系統的資源呼叫)

	ps	ax		##顯示當前系統中的所有程序
	ps	aux		##顯示系統中所有程序並顯示程序使用者
	ps	ef		##顯示程序詳細資訊並顯示程序父子關係
		
  • 顯示程序指定資訊
ps	-o 		xxx 		##顯示程序的指定資訊
    			comm		##程序名稱
    			user		##程序所有人
    			group		##程序所有組
    			%cpu		##程序cpu使用率
    			%mem		##程序記憶體使用率
    			pid		##程序id
    			nice		##程序優先順序
  • 程序排序

    ps ax --sort=+%cpu|-%cpu
     	     	 +%mem|-%mem
    

例:
ps ax --sort=+%cpu -o %cpu|head -n 6|grep %cpu -v

  1. 程序優先順序
	S		##程序狀態
        L		##記憶體中有鎖定空間		
        N		##優先順序低
        <		##優先順序高
        +		##前臺執行
        s		##頂級程序
  • 優先順序範圍
    -20~19 (數字越小,級別越大)

  • 優先順序檢視
    ps ax -o pid,nice,comm

  • 改變程序優先順序:
    renice -n 優先順序數字 程序id
    例:renice -n -5 6574        ##改變6574程序的優先順序為-5

  • 指定某個優先順序開啟程序
    nice -n 優先順序數字 程序名字
    例子:nice -n -5 vim &        ##開啟vim

  1. 環境中程序的前後臺呼叫
    在單一終端機介面下同時進行多個工作的管理行為。
	jobs			##檢視被打入環境後臺的程序
	ctrl+Z			##把佔用終端的程序打入後臺
	fg jobsnum		##把後臺程序調回前臺
	bg jobsnum		##把後臺暫停的程序執行
	comm &			##讓命令直接在後臺執行
  1. 程序訊號
    常用程序訊號的等級
	1			程序重新載入配置
	2			刪除程序在記憶體中的資料
	3			刪除滑鼠在記憶體中的資料
	9			強行結束單個程序(不可被阻塞)
	15			正常關閉程序(可能會被阻塞)
	18			執行暫停的程式
	19			暫停某個程序(不能被阻塞)
	20			把程序打入後臺(可能被阻塞)
	Man 7 signal	檢視訊號詳細資訊

       發起訊號

Kill	-訊號	程序id
Killall	-訊號	程序名字
Pkill	-u	student -訊號 
  1. 程序的動態監控
    top:動態監控程序,檢視程序資訊
top		l		顯示CPU每個核的負載
		s		調整重新整理頻率
		c		CPU負載排序
		m		記憶體使用量排序
		h		檢視幫助
		u		檢視指定使用者程序
		k		對指定程序發起訊號
		q		退出