天天看點

【Linux最強學習筆記7】Linux程序管理1.程序2.程序檢視指令3.程序優先級4.程序前背景調用5.程序信号6.systemd守護程序7.系統中的登陸審計

文章目錄

  • 1.程序
    • 1.1.程序的定義
    • 1.2.程序&線程
    • 1.3.程序的狀态
  • 2.程序檢視指令
    • 2.1.圖形程序檢視工具:

      gnome-system-monitor

    • 2.2.程序檢視:

      ps

    • 2.3.程序過濾:

      pgrep

    • 2.4.檢視vim的pid:

      pidof vim

    • 2.5.動态程序檢視:

      top

  • 3.程序優先級
  • 4.程序前背景調用
  • 5.程序信号
  • 6.systemd守護程序
  • 7.系統中的登陸審計

1.程序

1.1.程序的定義

  • 程式:靜态的代碼檔案
  • 程序:
    1. 程式運作時的形态
    2. 程式的一個副本
    3. 有生命周期(準備期,運作期,終止期)

1.2.程序&線程

  • 程序:資源調用的最小機關
  • 線程:程序的最小機關

程式執行流是從上到下貫穿運作;

當程序是多任務、CPU是多核心時,多任務應該同時被每個核心處理,每個核心處理的任務叫線程;

線程資源是共享的;

1.3.程序的狀态

R(TASK_RUNNING) 可執行态(running,ready)
S(TASK_INTRRUPTABLE) 可喚醒休眠
D(TASK_UNINTRRRUPTABLE) 不可喚醒休眠
T(TASK_STOP) 暫停狀态
Z(EXIT_ZOBIE) 僵死态

2.程序檢視指令

2.1.圖形程序檢視工具:

gnome-system-monitor

2.2.程序檢視:

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 ax顯示資訊如下:
PID 程序id
TTY 程序用到的終端
STAT 程序狀态
TIME 程序占用CPU時長
COMMAND 程序名稱
  • ps aux顯示資訊如下:
USER 程序所有人
PID 程序id
%CPU 程序使用CPU的用量
%MEM 程序所用到的記憶體用量
VSZ 程序使用的虛拟記憶體大小
RSS 程序常駐記憶體中的資料大小
TTY 程序用到的終端
STAT 程序狀态
START 程序運作時長
TIME 程序占用CPU時長
COMMAND 程序名稱

2.3.程序過濾:

pgrep

-u uid 顯示指定使用者程序
-U user 顯示指定使用者程序
-t tty 顯示指定用終端程序
-l 顯示程序名稱
-a 顯示程序的完整名稱
-P 顯示程序的子程序

2.4.檢視vim的pid:

pidof vim

2.5.動态程序檢視:

top

  • top中的内容顯示資訊
09:48:51 系統時間
up 18:53 運作時長
2 users 系統中有兩個使用者登入
load average: 0.75,0.53,0.41
  • Tasks:
331 total 任務總量
3 running 正在運作
329 sleeping 休眠人物數量
0 stopped 被暫停數量
0 zombie 僵死人物數量
  • %CPU
1.5 us 使用者空間
1.9 sy 核心空間
0.0 ni nice值調整空間
58.9 id 空閑時間
0.0 wa 等待io時間
2.1 hi 處理硬體中斷時間
0.2 si 處理軟體中斷時間
0.0 st 被偷走的時間(vm使用時間)
  • MIB Mem
7664.6 total 總量
5383.9 free 空閑
1312.1 used 占用
968.8 buff/cache 緩存
  • MiB Swap:交換分區變量
  • top指令的參數

-d 指定重新整理頻率(預設3s)
-b 以批次方式顯示
-n 指定顯示的批次數量
  • top内部指令

P CPU排序
M 記憶體排序
T 累計占用CPU時間排序
l 關閉/開啟uptime資訊
t 關閉/開啟CPU&task
s 指定重新整理頻率
k 操作程序
u 檢視指定使用者程序

内容:

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.程序優先級

系統是多任務多使用者的操作模式

任務的重要性是有區分的

如何确定任務的重要性:

“優先級”

範圍:0 -> 139

核心自控優先級範圍:0 -> 99

使用者可控優先級:100 -> 139

nice值:(-20) -> 19

  • 更改優先級:

    renice -n -5 43331

  • 指定優先級打開程序:

    nice -n -5 cat

  • ps ax -o pid,nice,comm | grep cat

ps ---> pri ---> 0-39
nice			20-19
priority		0-139(100-139)
           
S sleeping
< 優先級高
s 頂級程序
T stop
N 優先級低
R running
+ 運作在前台

4.程序前背景調用

+ 把占用shell的程序打入背景挂起
bg 把背景挂起的程序運作起來
fg 把背景程序調回前台
& 運作程序在背景
jobs 檢視目前shell中在背景的所有工作
  • 示例:

5.程序信号

  • 程序信号
1 重新加載系統配置檔案
2 清空記憶體中的程序資料
3 清空記憶體中的滑鼠(+<\>)
9 強行結束程序(不被阻塞)
15 正常關閉程序(會被阻塞)
18 運作被暫停的程序
19 暫停程序
20 暫停程序
  • 程序信号控制工具

    kill 程序信号 pid

    killall 程序信号 程序名稱

    pkill 程序信号 程序條件

6.systemd守護程序

  • 實驗環境:兩台主機
  • 遠端操作主機:

    ssh 遠端主機IP -l 遠端主機使用者

  • 守護程序

    (替核心分擔程式控管的程式;通常pid為1)

systemd ---> systemctl
systemctl	管理系統服務
			(服務:指在系統中開啟的共享系統資源到網絡中的1程式)

cs			client  ---  server
           
  • systemctl

    :管理系統服務 用法:
start 開啟
stop 關閉
status 檢視狀态
reload 重新加載
restart 重新啟動服務
enable 設定服務開機啟動
enable --now 設定服務開機啟動并目前開啟服務
disable 設定服務開機不啟動
disable --now 設定服務開機不啟動并目前關閉服務
list-units 檢視系統所有服務目前狀态
list-unit-files 檢視服務開機狀态
list-dependencies 列出服務依賴性
mask 當機服務
unmask 解鎖
set-default 設定系統運作模式

multi-user.target

無圖形網絡模式 3

graphical.target

有圖形網絡模式 5

get-default 檢視系統運作模式
  • 系統運作模式(0-6)
PowerOff
1 single-單使用者模式
2 noG+NETWORK -多使用者模式,無NFS
3 指令行模式 無桌面程式( init 3 )
4 暫時沒有被使用
5 G+NETWORK ( init 5 )
6 REBOOT-重新開機模式(init 6)
  • 示例:

7.系統中的登陸審計

繼續閱讀