目錄
......
linux中的程序管理
1、程序的定義
2、程序檢視指令
3、程序優先級
4、程序前背景調用
5、 程序信号
6、systemd守護程序
7、系統中的登陸審計
......
......
linux中的程序管理
1、程序的定義
程式是靜态的代碼檔案
程序是指程式運作時的形态,是程式的一個副本,是有生命周期的(準備期,運作期,終止期)
程序&線程
程序是資源調用的最小機關;線程是程序的最小機關
程式執行流是從上到下貫穿運作的
當程序是多任務物,cpu是多核心,多任務應該同時被每個核心處理,每個核心處理的任務叫線程,線程資源是共享的。
#程序狀态
#R(TAKS_RUNNING) #可執行态(running,ready)
#S(TASK_INTRRUPTABLE) #可喚醒休眠
#D(TASK_UNINTRRUPTABLE) #不可喚醒休眠
#T(TASK_STOP) #暫停狀态
#Z(EXIT_ZOMBIE) #僵死态
2、程序檢視指令
gnome-system-monitor #圖形程序檢視工具
ps #程序檢視
#ps 指令的三種風格 unix bsd GNU
#a 與終端相關的程序(當使用者登陸系統後産生的程序都是帶終端的)
#x 與終端無相關的程序
#u 使用者資訊歸類的檢視方式
#f 程序的層級關系
#o 顯示制定參數 pid comm nice pri pcpu ppid stat user group
#-e 顯示所有程序
#-f 顯示資訊的完整格式
#-H 顯示程序的層級結構
#-o 顯示指定參數
#--sort= 例:ps -eo %cpu --sort==%cpu 正序顯示程序使用cpu用量
ps -eo %cpu --sort==-%cpu 倒序顯示cpu用量
ps aux 顯示的資訊如下
#USER 程序所有人
#PID 程序id
#%CPU 程序使用cpu用量
#%MEM 程序所用到的記憶體用量
#VSZ 程序所用的虛拟記憶體大小
#RSS 程序常駐記憶體的資料大小
#TTY 程序用到的終端
#STAT 程序狀态
#START 程序運作時長
#TIME 程序占用Cpu時長
#COMMAND 程序名稱
pgrep #程序過濾
#-u uid 顯示指定使用者程序
#-U user 顯示指定使用者程序
#-t tty 顯示指定終端程序
#-l 顯示程序名稱
#-a 顯示程序的完整名稱
#-p 程序的子程序
pidof vim ##檢視 vim 的pid
top ##動态程序檢視

top中的内容顯示資訊 #16:18:50 系統時間 #up 7:20 運作時長 #1 user 系統中有一個使用者登入 #load average: 0.17, 0.12, 0.04 1min 5min 15min | Task中的内容顯示資訊 #211 total 任務總量 #2 running 正在運作 #209 sleeping 休眠的任務數量 #0 stopped 被暫停數 #0 zombie 僵死任務數 |
%Cpu(s)中的内容顯示資訊 #2.0 us 使用者空間 #1.0 sy 核心空間 #0.0 ni nice值調整時間 #97.0 id 空閑時間 #0.0 wa 等待io時間 #0.0 hi 處理硬體中斷時間 #0.0 si 處理軟體中斷時間 #0.0 st 被偷走的時間(vm使用時間) | MiB Mem中的内容顯示資訊 #818.6 total 總量 #84.6 free 空間 #417.7 used 占用 #316.5 buff/cache 緩存 |
MiB Swap: 交換分區用量 |
#PID 程序id
#USER 程序所有者的使用者名
#PR 優先級
#NI nice值。負值表示高優先級,正值表示低優先級
#VIRT 程序使用的虛拟記憶體總量,機關kb。VIRT=SWAP+RES
#RES 程序使用的、未被換出的實體記憶體大小,機關kb。RES=CODE+DATA
#SHR 共享記憶體大小,機關kb
#S 程序狀态(D=不可中斷的睡眠狀态,R=運作,S=睡眠,T=跟蹤/停止,Z=僵屍程序)
#%CPU 上次更新到現在的CPU時間占用百分比
#%MEM 程序使用的實體記憶體百分比
#TIME+ 程序使用的CPU時間總計,機關1/100秒
#COMMAND 指令名/指令行
3、程序優先級
1)、CPU資源配置設定的先後順序,就是指程序的優先級,優先權高的程序有優先執行的權利
2)、檢視系統程序 ps 指令
![]()
Linux作業系統基礎 1.6 -- 程式管理......linux中的程式管理...... ·UID:代表執行者的身份
·PID:代表這個程序的代号
·PPID:代表這個程序是由那個程序發展衍生而來的,即父程序的代号
·PRI:代表這個程序可被執行的優先級,其值越小越早被執行
·NI:代表這個程序的nice值(即程序可被執行的優先級的修正數值)
3)、修改程序優先級的指令主要有兩個:nice,renice
i、一開始執行程式就指定nice值:nice
nice -n -5 cat #nice值為-5 運作cat指令
ii、調整已存在程序的nice:renice
renice -n -5 43331 #PID為43331的程序nice設為-5
參 數:-n<優先等級>等級的範圍從-20-19,其中-20最高,19最低,隻有系統管理者可以設定負數的等級。
也可以用top指令更改已存在程序的nice:
top
#進入top後按“r”–>輸入程序PID–>輸入nice值
4)、程序的各種狀态
S 睡眠狀态(sleeping):意味着程序在等待着事件完成
R 運作狀态(runing):并不意味着程序一定在運作中,它表明程序要麼在運作要麼在運作隊列裡
T 停止狀态(stopped):可以通過發送SIGSTOP信号給程序來終止(T)程序。這個被暫停的程序可以通過發送SIGCONT信号讓程序繼續運作
X 死亡程序(dead):這個狀态隻是一個傳回狀态。你不會在任務清單裡看到這個狀态
< #優先級高
N #優先級底
s #頂級程序
+ #運作在前台
4、程序前背景調用
<ctrl>+<z> #把占用shell的程序打入背景挂起
bg #把背景挂起的程序運作起來
fg #把背景程序調回前台
& #運作程序在背景
jobs #檢視目前shell中在背景的所有工作
5、 程序信号
程序信号:
1 #重新加載系統配置檔案(source)
2 #清空記憶體中的程序資料
3 #清空記憶體中的滑鼠(ctrl+\)
9 #強行結束程序(不能被阻塞)
15 #正常關閉程序(會被阻塞)
18 #運作被暫停的程序
19 #暫停程序(不會被阻塞)
20 #暫停程序(會被阻塞的
程序信号控制工具:
kill 程序信号 pid
killall 程序信号 程序名字
pkill 程序信号 程序條件
例: ps 檢視程序id
kill -9 程序id #指定結束某程序
killall -9 程序名 #結束多個同名程序
6、systemd守護程序
d
是守護程序(daemon)的縮寫,Systemd 取代了
initd
,成為系統的第一個程序(PID 等于 1),其他程序都是它的子程序,其為系統的啟動和管理提供一套完整的解決方案。
#遠端操作主機
#ssh -l 主機名 主機ip位址
#systemctl指令的用法
systemctl 提供了一組子指令來管理單個的 unit,其指令格式為:
systemctl [command] [unit]
command 主要有:
start ##開啟
stop ##關閉
status ##檢視狀态
reload ##重新加載
restart ##重新啟動服務
enable ##設定服務開機啟動
enable --now ##設定服務開機啟動并目前開啟服務
disable ##設定服務開啟不其動
list-units ##檢視系統所有服務目前狀态
list-unit-files ##檢視服務開機狀态
list-dependencies ##列出服務依賴性
mask ##當機服務
unmask ##解鎖
set-default ##設定系統運作模式
#multi-user.target 無圖形網絡模式
#graphical.target 有圖形的網絡模式
get-default ##檢視系統運作模式
##系統運作模式
#0-6
#0 POWEROFF
#1 single
#2 noG+NETWORK
#3 同2
#4 同2
#5 G+NETWORK
#6 REBOOT
7、系統中的登陸審計
w # 顯示正在登陸系統的賬号
# -i 顯示登陸來源
# /var/run/utmp
last # 登陸成功現在已經退出的
# /var/log/wtmp
lastb # 試圖登陸但未成功
# /var/log/btmp