1. 程式人生 > >linux基礎篇(三):程序管理

linux基礎篇(三):程序管理

程序

程序的定義:程序就是cpu未完成的工作

ps命令

ps
    a    ##關於當前環境的所有程序
    x| -A    ##所有程序
    f    ##顯示程序從屬關係
    e    ##顯示程序呼叫環境工具的詳細資訊
    l    ##長列表顯示程序的詳細資訊
    u    ##顯示程序的使用者資訊
   -a    ##顯示shell前臺執行命令的程序,但不保函shell本身

在這裡插入圖片描述
在這裡插入圖片描述
ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定顯示程序的某些資訊
在這裡插入圖片描述

%cpu    ##顯示程序cpu負載
%mem    ##顯示程序記憶體負載
user    ##程序使用者
group    ##程序組
comm    ##程序名稱
nice    ##程序優先順序
pid    ##程序的id
stat    ##程序狀態
stat中顯示的資訊
S    ##程序狀態
l    ##記憶體中有鎖定空間
N    ##優先順序低
<    ##優先順序高
+    ##前臺執行
s    ##頂級程序

ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem> ##按照程序資訊排序
(1)ps ax -o %cpu,comm --sort -%cpu ##按照cpu負載倒序排序
在這裡插入圖片描述
(2)ps ax -o %mem,comm --sort -%mem ##按照記憶體負載倒序排序
在這裡插入圖片描述

程序優先順序

程序優先順序範圍

-20—19

優先順序檢視

ps ax -o pid,nice,comm
在這裡插入圖片描述

指定某個優先順序開啟程序

nice -n 優先順序數字 程序名稱
nice -n -5 vim & ##開啟vim並且指定程式優先順序為-5
在這裡插入圖片描述

改變程序優先順序

reince -n 優先順序數字 程序pid
renice -n -5 1806 ##改變1806程序的優先順序為-5
在這裡插入圖片描述

環境中程序的前後臺呼叫

jobs                    ##檢視被打入環境後臺的程序
ctrl+z                  ##把佔用終端的程序打入後臺
fg jobsnum              ##把後臺程序調回前臺
bg jobsnum              ##把後臺暫停的程序執行
comm &                  ##讓命令直接在後臺執行

(1)ctrl +z 將gedit打入後臺,再利用bg命令將打入後臺的gedit調回前臺
在這裡插入圖片描述
(2)利用fg命令將在後臺執行的程序調回前臺執行
在這裡插入圖片描述

在這裡插入圖片描述

程序訊號

常用訊號等級
1               ##程序重新載入配置
2               ##刪除程序在記憶體中的資料
3               ##刪除滑鼠在記憶體中的資料
9               ##強行結束單個程序(不能被阻塞)
15              ##正常關閉程序   (可能會被阻塞)       
18              ##執行暫停的程序
19              ##暫停某個程序   (不能被阻塞)
20              ##把程序打入後臺        (可以被阻塞)
man 7 signal    ##檢視訊號詳細資訊
kill -訊號 程序pid
killall -訊號   程序名字
pkill   -u student -訊號

在這裡插入圖片描述
在這裡插入圖片描述

使用者登陸審記

w               ##檢視使用系統的當前使用者有那些
w -f            ##-f檢視使用地點
last            ##檢視使用者登陸成功歷史
lastb           ##檢視使用者登陸未成功歷史

在這裡插入圖片描述
在這裡插入圖片描述

top命令

s       : 修改程序重新整理間隔時間
m       : 根據記憶體佔有率進行排序
c       : 根據 cpu 佔有率進行排序
u       : 後面輸入使用者名稱 , 用來檢視該使用者發起的所有程序
k       : 後面跟要作用的程序 pid, 和發起的訊號 (eg:9,15,20) 用來
給某個程序發起一訊號
q       : 退出程序檢視介面
h       : 顯示 top 命令的幫助

在命令列輸入top
在這裡插入圖片描述
輸入s修改程序重新整理時間間隔(直接在top命令輸出介面輸入)
在這裡插入圖片描述

系統初始化程式

systemd

系統初始化程式,系統開始的第一個程序,pid為1

systemctl 命令

systemctl list-units                    ##列出當前系統服務的狀態
systemctl list-unit-files               ##列出服務的開機狀態
systemctl status sshd                   ##檢視指定服務的狀態
systemctl stop sshd                     ##關閉指定服務
systemctl start sshd                    ##開啟指定服務
systemctl restart sshd                  ##從新啟動服務
systemctl enable sshd                   ##設定指定服務開機開啟
systemctl disable sshd                  ##設定指定服務開機關閉
systemctl reload sshd                   ##使指定服務從新載入配置
systemctl list-dependencies sshd        ##檢視指定服務的倚賴關係
systemctl mask  sshd                    ##凍結指定服務
systemctl unmask sshd                   ##啟用服務
systemctl set-default multi-user.target ##開機不開啟圖形
systemctl set-default graphical.target  ##開機啟動圖形
setterm                                 ##文字介面設定color
vga=ask
systemctl       status          服務名稱
loaded                          ##系統服務已經初始化完成,載入過配置
active(running)               ##正有一個或多個程式正在系統中執行,
                               # vsftpd 就是這種模式
atcive(exited)                ##僅執行一次就正常結束的服務,
atcive(waiting)               ##正在執行當中,不過還再等待其他的事件才能繼續處理
inactive                        ##服務關閉
enbaled                         ##服務開機啟動
disabled                        ##服務開機不自啟
static                          ##服務開機啟動項不可被管理
failed                          ##系統配置錯誤