Linux下系統進程及服務的控制

系統進程

什麼是進程

進程就是系統未完成並且正在進行的工作

查看進程

1.圖形查看

gnome-system-monitor
在這裏插入圖片描述

2.進程查看命令

ps -A #所有進程
ps -a #在當前環境中運行的進程,不包含環境信息
ps -u #顯示進程用戶信息
ps a #在當前用戶環境中運行的進程
ps x #列出系統中所有運行包含tty輸出設備
ps f #顯示進程的父子關係
ps e #顯示進程的詳細信息(系統資源的調用)
  • ps -A #所有進程
    在這裏插入圖片描述
  • ps -a #在當前環境中運行的進程,不包含環境信息
    在這裏插入圖片描述
  • ps -u #顯示進程用戶信息
    在這裏插入圖片描述
  • ps a #在當前用戶環境中運行的進程
    在這裏插入圖片描述
  • ps x #列出系統中所有運行包含tty輸出設備
    在這裏插入圖片描述
  • ps f #顯示進程的父子關係
    在這裏插入圖片描述
  • ps e #顯示進程的詳細信息(系統資源的調用)
    在這裏插入圖片描述

##ps常用組合

ps aux #顯示系統中所有進程並顯示進程用戶
ps ef #顯示進程詳細信息並顯示進程父子關係
ps ax #顯示當前系統中的所有進程
pstree #顯示當前系統的進程樹
  • ps aux #顯示系統中所有進程並顯示進程用戶
    在這裏插入圖片描述
  • ps ef #顯示進程詳細信息並顯示進程父子關係
    在這裏插入圖片描述
  • ps ax #顯示當前系統中的所有進程
    在這裏插入圖片描述
  • pstree #顯示當前系統的進程樹
    在這裏插入圖片描述

##顯示進程指定信息

ps -o xxx #顯示進程的指定信息
ps -o comm #進程名稱
ps -o user #進程所有人
ps -o group #進程所有組
ps -o %cpu #進程cpu使用率
ps -o %mem #進程內存使用率
ps -o pid #進程id
ps -o nice #進程優先級
  • ps -o xxx #顯示進程的指定信息
  • ps -o comm #進程名稱
    在這裏插入圖片描述
  • ps -o user #進程所有人
    在這裏插入圖片描述
  • ps -o group #進程所有組
    在這裏插入圖片描述
  • ps -o %cpu #進程cpu使用率
    在這裏插入圖片描述
  • ps -o %mem #進程內存使用率
    在這裏插入圖片描述
  • ps -o pid #進程id
    在這裏插入圖片描述
  • ps -o nice #進程優先級,進程的優先級範圍-20~19 ,優先級數字越小,進程優先級越高
    在這裏插入圖片描述

##進程排序

  • ps --sort=+%cpu|-%cpu #+加號可加可不加默認從低到高排列
    在這裏插入圖片描述
    在這裏插入圖片描述
  • ps --sort=+%men|-%men
    在這裏插入圖片描述
    在這裏插入圖片描述

##測試
抓取系統中內存使用量排在前五的進程的pid
首先我們可以通過指令
ps ax --sort=-%mem -o pid
查看系統中所有進程pid並按內存使用量由高到低排列
在這裏插入圖片描述
然後通過指令
head -n 6 | tail -n 5 或sed -n 2,6p
抓取前五行
在這裏插入圖片描述

在這裏插入圖片描述
##stat中顯示的信息
可通過ps -o stat 查看
在這裏插入圖片描述
#此處爲了便於stat中所有顯示的信息的展示進程firefox與gedit的優先級已經被手動修改

S 進程狀態
I 內存中有鎖存空間
N 優先級低
< 優先級高
+ 前臺運行
s 頂級進程

3.進程優先級

(1)進程的優先級範圍
-20~19 優先級數字越小進程優先級越高
(2)優先級查看
ps -o nice #常和comm,pid一同使用在這裏插入圖片描述
(3)指定某個優先級開啓進程
nice -n 優先級數字 進程名稱
nice -n -5 vim & #指定vim進程啓動時優先級爲-5
在這裏插入圖片描述
在這裏插入圖片描述
注意:"&"表示進程開啓後打入後臺,如果不加“&“符號 命令行就會被佔用
(4)改變進程優先級
renice -n 優先級數字 +進程pid #指定已經啓動進程優先級
renice -n 10 3529 #更改進程3529的優先級爲10
在這裏插入圖片描述
在這裏插入圖片描述

4.環境中進程的前後臺調用

  • jobs #查看被打入環境後臺的進程
    在這裏插入圖片描述
    注意:
    “+“ 默認級
    “ -“ 次默認級
    無符號的沒有優先級

  • ctrl+z ##將佔用終端的進程暫停並打入後臺
    在這裏插入圖片描述
    此時我們再打開gedit窗口
    在這裏插入圖片描述
    發現gedit已經被暫停,無法對其進行操作

  • fg ##把後臺進程調回前臺,直接執行會默認執行帶“+“的程序
    在這裏插入圖片描述
    在這裏插入圖片描述
    當想指定後臺某進程時可以用
    fg jobnumber 將指定進程調出
    fg 1 #將後臺進程序號爲1的進程調回前臺
    在這裏插入圖片描述
    在這裏插入圖片描述
    注意:jobnumber時通過jobs命令查到的後臺的進程的序號(不是pid)

  • bg ##把後臺暫停的進程運行,直接執行會默認執行帶“+“的程序
    在這裏插入圖片描述
    在這裏插入圖片描述
    bg jobnumber #將指定進程運行
    bg 3 #將後臺進程序號爲3的進程運行
    在這裏插入圖片描述
    在這裏插入圖片描述
    command & ##讓命令直接在後臺運行
    在這裏插入圖片描述

5.進程信號

(1)常用信號等級 (信號等級共有30個,以下只列出常用的,可通過man 7 signal 查看信號詳細信息)

1 進程重新加載配置
2 刪除進程在內存中的數據,對shell相當於ctrl+c 對系統中有鎖存空間的(gedit)相當於關閉該進程
3 刪除鼠標在內存中的數據 快捷鍵:ctrl+\ 應用:看視頻時全屏鼠標消失
9 強行結束單個進程(不能被阻塞)
15 正常關閉進程 (可能會被阻塞)
18 運行暫停的進程
19 暫停某個進程 (不能被阻塞)
20 把進程暫停並打入後臺(可以被阻塞)
  • kill -信號 進程pid
    在這裏插入圖片描述
  • killall -信號 進程名字
    在這裏插入圖片描述
  • pkill -u student(username) -信號 #對某用戶所有進程
    在這裏插入圖片描述

6.進程的動態監控

top
在這裏插入圖片描述

1 顯示cpu 每個核的負載
s 調整刷新頻率
c CPU負載排序
m 內存使用量排序
h 查看幫助
u 查看指定用戶進程
k 對指定進程發起信號
q 退出
  • 1:顯示cpu 每個核的負載
    在這裏插入圖片描述
  • s:調整刷新頻率爲1s
    在這裏插入圖片描述
  • c:CPU負載排序
    在這裏插入圖片描述
  • m:內存使用量排序
    在這裏插入圖片描述
  • u:查看kiosk用戶進程
    在這裏插入圖片描述
    在這裏插入圖片描述
  • k:對進程15361執行信號9
    在這裏插入圖片描述
    在這裏插入圖片描述

7.控制服務

(1)什麼是服務
定義:系統中運行的對於系統本身沒有意義,但是對客戶主機有重大意義的程序叫做服務性軟件簡稱服務,服務是一類進程。
(2)用什麼控制服務
系統初始化進程可以對服務進行相應的控制

(3)當前系統初始化進程是什麼
systemd ##系統初始化進程
pstree ##顯示系統中的進程樹
(4)進程控制命令
ssh------->sshd
client server

systemctl #服務控制
systemctl status sshd #查看服務
systemctl start sshd #開啓服務
systemctl stop sshd #關閉服務
systemctl restart sshd #重啓服務
systemctl reload sshd #重現加載服務配置
systemctl enable sshd #設定服務開機啓動
systemctl disable sshd #設定服務開機不啓動
systemctl list-units #列出已經開啓服務當前狀態
systemctl list-unit-files #列出所有服務開機啓動的狀態disable(開機不啓動的),enable(開機啓動),static(靜態的),maskd(凍結的)
systemctl mask sshd #凍結sshd服務
systemctl unmask sshd #解鎖sshd服務
systemctl list-dependencies #列出服務器的倚賴(倚賴:需要另一個服務是開啓的)
systemctl set-default multi-user.target #設定系統啓動級別爲多用戶模式(無圖形)
systemctl set-default graphical.target #設定系統啓動級別爲圖形模式
  • systemctl status sshd #查看服務
    在這裏插入圖片描述
  • systemctl stop sshd #關閉服務
    在這裏插入圖片描述
  • systemctl start sshd #開啓服務
    在這裏插入圖片描述
  • systemctl disable sshd #設定服務開機不啓動
    在這裏插入圖片描述
    在這裏插入圖片描述
  • systemctl enable sshd #設定服務開機啓動
    在這裏插入圖片描述
    在這裏插入圖片描述
  • systemctl list-units #列出已經開啓服務當前狀態
    在這裏插入圖片描述
  • systemctl list-unit-files #所有服務開機啓動的狀態 disable(開機不自啓),enable(開機自啓),static(靜態的),maskd(凍結的)
    在這裏插入圖片描述
  • systemctl mask sshd #凍結sshd服務
    在這裏插入圖片描述
    在這裏插入圖片描述
  • systemctl unmask sshd #解鎖sshd服務
    在這裏插入圖片描述
    在這裏插入圖片描述
  • systemctl list-dependencies #列出服務器的倚賴
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章