Linux程式控制

Pruett發表於2018-06-11

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 網路伺服器守護程式就是一個例子。
2 INT 中斷。實現和 Ctrl-c 一樣的功能,由終端傳送。通常,它會終止一個程式。
9 KILL 殺死。這個訊號很特別。鑑於程式可能會選擇不同的方式,來處理髮送給它的 訊號,其中也包含忽略訊號,這樣呢,從不傳送 Kill 訊號到目標程式。而是核心立即終止 這個程式。當一個程式以這種方式終止的時候,它沒有機會去做些“清理”工作,或者是儲存勞動成果。 因為這個原因,把 KILL 訊號看作殺手鐗,當其它終止訊號失敗後,再使用它。
15 TERM 終止。這是 kill 命令傳送的預設訊號。如果程式仍然“活著”,可以接受訊號,那麼 這個訊號終止。
18 CONT 繼續。在停止一段時間後,程式恢復執行。
19 STOP 停止。這個訊號導致程式停止執行,而沒有終止。像 KILL 訊號,它不被 傳送到目標程式,因此它不能被忽略。
3 QUIT 退出
11 SEGV 段錯誤。如果一個程式非法使用記憶體,就會傳送這個訊號。也就是說, 程式試圖寫入記憶體,而這個記憶體空間是不允許此程式寫入的。
20 TSTP 終端停止。當按下 Ctrl-z 組合鍵後,終端傳送這個訊號。不像 STOP 訊號, TSTP 訊號由目標程式接收,且可能被忽略。
28 WINCH 改變視窗大小。當改變視窗大小時,系統會傳送這個訊號。 一些程式,像 top 和 less 程式會響應這個訊號,按照新視窗的尺寸,重新整理顯示的內容。

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

命令名 命令描述
pstree 輸出一個樹型結構的程式列表,這個列表展示了程式間父/子關係。
vmstat 輸出一個系統資源使用快照,包括記憶體,交換分割槽和磁碟 I/O。 為了看到連續的顯示結果,則在命令名後加上延時的時間(以秒為單位)。例如,“vmstat 5”。 終止輸出,按下 Ctrl-c 組合鍵。
xload 一個圖形介面程式,可以畫出系統負載的圖形。
tload 與 xload 程式相似,但是在終端中畫出圖形。使用 Ctrl-c,來終止輸出。

相關文章