程序控制與管理

2021-09-03 09:47:03 字數 3062 閱讀 3973

檢視和控制程序

程式和程序的關係: 程式

儲存在硬碟、光碟等介質中的可執行**和資料;

是靜態儲存的**

程序

在cpu及記憶體中執行的程式**;是動態執行的**;

父子程序:每個程序可以建立乙個或多個程序

a)檢視程序

1.ps 命令——檢視靜態的程序統計資訊

a:顯示當前中斷下所有程序資訊

u:使用以使用者為主的格式輸出程序資訊

x:顯示當前使用者在所有終端下的程序資訊

- e:顯示系統內的所有程序資訊

- l:使用長格式顯示程序資訊

- f:使用完整的格式顯示程序資訊

輸出資訊各欄位含義:

user:啟動該程序的使用者賬號的名稱

pid:該程序在系統中的數字id號,在當前系統中是唯一的

tty:表明該程序是在哪個終端上執行的。」?」表示未知或不需要終端

stat:顯示了程序當前的狀態,(s:休眠 ;r:執行;z:僵死;對於僵死狀態的程序應該手動終止

start:啟動該程序的時間

time:該程序占用的cpu時間

command:啟動該程序的命令的名稱

%cpu:cpu占用的百分比

%mem:記憶體占用的百分比

vsz:占用虛擬記憶體(swap空間)的大小

rss:占用常駐記憶體(物理記憶體)的大小

eg:以簡單列表的形式顯示出所有程序資訊

ps aux

eg:長格式顯示系統中所有的程序資訊

ps - elf

eg:過濾出bash的程序資訊

ps aux | grep bash

2.top 命令——檢視程序動態資訊(3秒重新整理一次

p:根據cpu占用情況對程序列表進行排序

m:根據記憶體占用情況進行排序

n:根據啟動時間進行排序

q:退出top程式

中止: k鍵 —出現(」pid to kill : 」輸入pid號回車—殺死)

3. pgrep 命令——查詢特定程序資訊

用來查詢特定程序資訊的專用工具;

結合」- l 」可同時輸出對應的程序名(否則只輸出pid,不便於理解);

結合」- u」選項查詢特定使用者的程序;

結合」- t 」查詢在特定終端執行的程序

eg:查詢程序名中包含log的程序及其pid號

pgrep - l 「log」

eg:查詢使用者teacher在tty1終端上執行的程序及pid號

pgrep - l - u teacher - t tty1

4.pstree 命令——檢視程序樹(預設只顯示各程序的名稱)

- a :列出完整的命令資訊

- p :同時列出對應的pid號

- u :對應的使用者名稱

eg:檢視當前系統的程序樹,包括程序對應的pid號、使用者名稱、完整命令等資訊

pstree   - aup

eg:列出由使用者teacher開啟的程序及子程序的樹結構

pstree - ap teacher

b)控制程序

1. 啟動程序

手工啟動程序:

前台啟動:使用者輸入命令,直接執行程式

後台啟動:在命令行尾加入「&」符號

排程啟動程序

使用at命令,設定一次性任務計畫

使用crontab命令,設定週期性計畫任務

eg:使用cp命令從光碟中製作映象檔案時,結合「&」將操作放到後台進行

cp /dev/cdrom mycd.iso &

2. 改變程序的執行方式

1)掛起當前的程序

ctrl + z:將當前的程序掛起(調入後台並停止執行)

wget 

2)檢視後台的程序

jobs - l:檢視當前終端中在後台執行的程序任務並顯示pid號

3)將後台的程序恢復執行

bg(後台)命令:將後台暫停執行(ctrl+z掛起的等)任務恢復後台執行

fg(前台)命令:將後台任務重新恢復到前台執行

除非後台中只有乙個任務,否則bg和fg都需要指定後台程序的任務編號

3. 終止程序

1)使用kill命令終止程序

終止指定pid

號的程序;- 9:強行殺死

eg:執行kill命令將程序的pid號為2869的rpc服務portmap終止

kill 2869—— 殺死指定pid的程序

pgrep - l 「portmap」——查詢目標程序是否終止

2) 使用killall命令終止程序

終止指定名稱的所有程序:結束系統中多個相同名稱的程序時使用

eg:killall - 9 vim——將所有名為vim的程序強行殺死

3) 使用pkill命令終止程序

根據指定條件(程序的名稱、執行該程序的使用者、程序所在的終端等)終止相應的程序(剔除使用者登入)

pkill - 9 - u (+使用者)

pkill - 9 - u u1 - t tty(終端)

eg:終止由使用者hackli啟動的程序(包括登入shell)

pkill - 9 - u 「hackli」 ——強行殺死使用者hackli的程序

pgrep - l - u 「hackli」——確認目標程序已被殺死

ps程序控制與管理

系統中每個程序都以兩種方式存在 前台 foreground 與後台 background 前台就是使用者在當前螢幕進行的操作,後台是程序進行的實際操作。ps 命令是 process status 的縮寫,執行時可以不加任何引數,顯示資訊如下 pid程序的id,方便結程序 ttytime 此程序消耗c...

程序管理 八 程序控制

在作業系統中,通常把程序控制用程式段做成原語。為了在併發執行過程中執行程序控制任務時候,減少系統的開銷和複雜度 建立方式 特點由系統程式模組統一建立 關係是平等 它們之間一般不存在資源繼承關係 由父程序建立 程序之間則存在隸屬關係 子程序可繼承父程序資源 建立方式總結 1.無論是哪一種方式建立程序,...

程序及程序控制

學習程序之前,先了解一下程式 所謂程式就是指編譯好的二進位制檔案,在磁碟上,不占用系統資源 cpu 記憶體.而程序是與作業系統相關,是指在記憶體中執行起來的程式,占用一些系統資源,每當乙個程式執行,就相應產生乙個程序。程序的一些相關資訊被放在乙個叫程序控制塊的資料結構中,稱之為pcb。linux下的...