1. 程式人生 > >linux之程序及服務的控制

linux之程序及服務的控制

什麼是程序?
 程序就是系統中正在執行的程式

1.圖形的程序檢視方式

gnome-system-moniter

輸入指令後,就打開了如下圖的程序管理器,相當於iwindows的工作管理員,可以檢視正在執行的程式

提示: “ls /proc“:檢視程序資訊
這裡寫圖片描述

2.檢視程序的命令

指令 解釋
ps 檢視與當前環境相關的程序
ps a 與當前環境相關的所有程序
ps -a 終端中執行的程序但不包含當前環境程序資訊
ps -A 檢視系統所有的程序
ps -e 檢視系統中所有的程序
ps x 檢視系統中所有含有輸出終端的程序
ps f 檢視程序的從屬關係
ps u 程序的所有人
ps ax 顯示所有的程序
ps aux 顯示包含其他使用者的程序資訊
ps -o 可以設定指定的資訊
  • 顯示指定的資訊
 ps ax -o comm,nice,PID,%cpu,%MEN,VSZ,RSS,TTY,STAT,STARTTIME,COMMAND

來了解一下上面指令的含義:

指令 作用
comm 該指令表示會從指定的輸入裝置中讀取資料
nice 該指令表示優先順序
%cpu 程序在cpu中的佔有率
%men 程序的實體記憶體佔有率
VSZ 虛擬記憶體佔用的大小
RSS 佔有固定記憶體的大小
TTY 字元裝置
stat 該程式目前的狀態
start 程序開始的時間
time 程序執行的時間
command 所執行的命令

接下來我們看看程序狀態的一些理解:

指令 作用
S 程序狀態
s 此程序為頂級程序
T 程序暫停
< 程序優先順序高
N 程序優先順序低
+ 正在執行
D 不可中斷的靜止
R 正在執行中
Z 已經停止但是暫時無法消除
W 沒有足夠的記憶體去分配

3.排序顯示程序的資訊

  • 按cpu使用率從小到大進行排序:
ps ax --sort=%cpu
  • 按cpu是使用率從大到小進行排序:
ps ax --sort=-%cpu

這裡寫圖片描述
提示:獲取前五行的“head -n 5”,獲取後五行的是“tail -n 5”;獲取3~5行的是“sed -n 3,5p”

4.程序的優先順序

 優先順序的數值是-20~19,數值越小優先順序越高,預設的數值是10.
 普通使用者的數值只有0-19,超級使用者才是-20~19

  • 修改程序的優先順序:
renice -n -5 pid

這裡寫圖片描述
 由上圖可以看出我們可以通過pid修改程序的優先順序

  • 指定優先順序開啟程序
nice -n -5 命令&

提示:-5是可以變化的,在-19~20中選擇優先順序,“&”這裡的代表的是將啟動的程式放到後臺
這裡寫圖片描述

5.程序前後臺的呼叫

將已啟動的程式打入後臺並停止執行:ctrl+z
將啟動的程式的程序結束掉:ctrl+c

 如圖所示crtl+z將文字放入了後臺並停止執行,圖片中是我手動將文字放出來的,只是為了展示文字無法編輯
這裡寫圖片描述

  • 檢視被打入後臺的程序:jobs
     如圖所示,我將gedit以及vim放進了後臺,所以jobs指令可以直接檢視後臺程序
    這裡寫圖片描述
  • 將指定程序在後臺執行:
bg jobsnum
  • 將指定程序調回前臺
fg jobsnum

這裡寫圖片描述

6.訊號

  • 常用的訊號理解
訊號 作用
1 程序不停止情況下重新載入配置
2 清除程序在記憶體中的資料
3 清除滑鼠在記憶體中的資料
9 強行結束程序,不能被阻塞
15 正常關閉程序
18 執行停止的程序
19 暫停程序,不能被阻塞
20 暫停程序,可以被阻塞
  • 執行kill
 kill  訊號  pid

這裡寫圖片描述

killall 訊號 程序名

這裡寫圖片描述
 這個是當一個程式被同時開啟多次時,可以用它去結束