Linux程序控制

2021-08-20 15:12:02 字數 2187 閱讀 5026

1.控制程序(中斷乙個程序)

開啟乙個程序,會不返回shell提示符,使用ctrl - c 來返回shell提示符,關閉程式

2.把乙個程序放在後台

放在後台 的程序,讓程式在後台執行,返回shell提示符,

xlogo &  //程序 &
同時列印一些有趣的數字。 這條資訊是

shell 特性的一部分,叫做工作控制 如:[1] 28236 已經啟動了 工作號為

1(「[1]」),pid 為28236的程式

3.程序返回到前台

在後台執行的程序,在命令列中一切的輸入都是免疫的,ctrl - c 也不能結束它,讓他返回前台的命令是 fg

fg %1

// 1 是工作號 ,可以使用jobs檢視正在執行的程序的工作號

4.停止不是終止乙個程序

把乙個程序從前台轉移到後台, 使用ctrl - z ,使用 fg 命令,可以恢復程式到前台執行,或者用 bg 命令把程式移到後台。

bg %1   //%1 是jobspec
為什麼要從命令列啟動乙個圖形介面程式呢?有兩個原因。第乙個,你想要啟動的程式,可能 沒有在視窗

管理器的選單中列出來(比方說 xlogo)。第二個,從命令列啟動乙個程式, 你能夠看到一些錯誤資訊,

如果從視窗系統中執行程式的話,這些資訊是不可見的。有時候, 乙個程式不能從圖形介面選單中啟動。

這時候,應該從命令列中啟動它。我們可能會看到 錯誤資訊,這些資訊揭示了問題所在。一些圖形介面程

序還有許多有意思並且有用的命令列選項。

5.kill 傳送訊號

語法

kill

[-signal]

pid

選項可以不寫 ,預設是傳送終止(term)訊號

編號名字含義1

hup掛起。這是美好往昔的痕跡,那時候終端機通過**線和數據機連線到 遠端的計算機。這個訊號被用來告訴程式,控制的終端機已經「掛起」。 通過關閉乙個終端會話,可以說明這個訊號的作用。傳送這個訊號到終端機上的前台程式,程式會終止。許多守護程序也使用這個訊號,來重新初始化。這意味著,當傳送這個訊號到乙個守護程序後, 這個程序會重新啟動,並且重新讀取它的配置檔案。apache 網路伺服器守護程序就是乙個例子。

2int

中斷。實現和 ctrl-c 一樣的功能,由終端傳送。通常,它會終止乙個程式。

9kill

殺死。這個訊號很特別。鑑於程序可能會選擇不同的方式,來處理傳送給它的 訊號,其中也包含忽略訊號,這樣呢,從不傳送 kill 訊號到目標程序。而是核心立即終止 這個程序。當乙個程序以這種方式終止的時候,它沒有機會去做些「清理」工作,或者是儲存勞動成果。 因為這個原因,把 kill 訊號看作殺手鐗,當其它終止訊號失敗後,再使用它。

15term

終止。這是 kill 命令傳送的預設訊號。如果程式仍然「活著」,可以接受訊號,那麼 這個訊號終止。

18cont

繼續。在停止一段時間後,程序恢復執行。

19stop

停止。這個訊號導致程序停止執行,而沒有終止。像 kill 訊號,它不被 傳送到目標程序,因此它不能被忽略。

3quit

退出11

segv

段錯誤。如果乙個程式非法使用記憶體,就會傳送這個訊號。也就是說, 程式試圖寫入記憶體,而這個記憶體空間是不允許此程式寫入的。

20tstp

終端停止。當按下 ctrl-z 組合鍵後,終端傳送這個訊號。不像 stop 訊號, tstp 訊號由目標程序接收,且可能被忽略。

28winch

改變視窗大小。當改變視窗大小時,系統會傳送這個訊號。 一些程式,像 top 和 less 程式會響應這個訊號,按照新視窗的尺寸,重新整理顯示的內容。

6.其他與程序相關的命令

命令名命令描述

pstree

輸出乙個樹型結構的程序列表,這個列表展示了程序間父/子關係。

vmstat

輸出乙個系統資源使用快照,包括記憶體,交換分割槽和磁碟 i/o。 為了看到連續的顯示結果,則在命令名後加上延時的時間(以秒為單位)。例如,「vmstat 5」。 終止輸出,按下 ctrl-c 組合鍵。

xload

乙個圖形介面程式,可以畫出系統負載的圖形。

tload

與 xload 程式相似,但是在終端中畫出圖形。使用 ctrl-c,來終止輸出。

linux 程序控制

什麼是程序 每乙個程序在系統中都有唯一的id標示它,此id為程序標示符 程序標示符的型別 pit t,其實是乙個無符號整形 乙個程序標示符對應唯一的乙個程序,多個程序標示符可以對應同乙個程式 程序和程式的區別 程式 可執行的二進位制 檔案,這種檔案載入到記憶體中執行就得到了乙個程序 程序 同乙個程式...

Linux程序控制

linux程序控制 獲取pid include include pid t getpdi void 獲取本程序id pdi t getppid vodi 獲取父程序id,及獲取建立子程序的程序id 程序建立 include pid t fork void 建立子程序 呼叫一次返回兩次值 1.父程序中...

linux程序控制

linux程序控制 編寫命令直譯器 一 背景 之前在 計算機作業系統 這本書中已經多次接觸了程序這一概念,而程序在作業系統中具體是做什麼的呢?卻沒有實際的與程序發生過互動,因此也就沒有實際的感受。對於我來說程序僅僅停留在概念的層面上 程序是程式執行時的記憶體空間和設定或者說程序就是程式的進行時。沒有...