網站首頁 編程語言 正文
目錄
一、進程
1、程序和進程概念
2、線程和進程概念
二、查看進程信息命令
1、PS 查看靜態進程統計信息命令
常用參數+相關字段含義
STAT 狀態
2、top 查看動態進程信息命令
相關字段含義
top命令全屏操作界面快捷鍵:
3、pgrep 查看進程信息命令
4、pstree 以樹形結構列出進程信息
5、jobs 命令
三、調度進程/終止進程
1、bg和fg 調度進程命令
2、終止進程
Ctrl + C
kill、killall
pkill
四 、計劃任務管理
1、一次性計劃任務 at
2、crontab 周期性任務設置
crontab命令
/etc/crontab——系統任務配置文件
管理crontab計劃任務命令
一、進程
1、程序和進程概念
進程簡單來說就是在操作系統中運行的程序,它是操作系統資源管理的最小單位。但是進程是一個動態的實體,它是程序的一次執行過程。進程和程序的區別在于 進程是動態的,程序是靜態的,進程是運行中的程序,而程序是一些保存在硬盤上的可執行代碼
程序
-
保存在硬盤、光盤等介質中的可執行代碼和數據
-
文件中靜態保存在的代碼
進程
-
再CPU及內存中運行的程序代碼
-
動態執行的代碼
-
父、子進程
-
每個程序可以創建一個或多個進程
-
2、線程和進程概念
線程:?每個進程中至少包含一個線程,而這些線程都在共享進程的資源空間等,當線程發生變化的時候只會引起CPU執行的過程發生變化,不會改變進程所擁有的資源。同理一個程序中至少包含一個進程。進程中執行運算的最小單位,亦是執行處理機調度的基本單位
進程: 每個進程都有自己的地址空間,資源如,內存,I/O,CPU,同一個進程里的 線程共享本進程里的地址空間,那能不能使用別人家進程的地址空間呢,顯然這是不可以的。由于進程的獨立性,當某一個進程崩潰之后,在保護模式下不會對別的進程進行影響。資源分配的基本單位,運行調度的基本單位,系統中并發執行的單位。
?
二、查看進程信息命令
1、PS 查看靜態進程統計信息命令
常用參數+相關字段含義
ps -aux
常用參數:
-a: 顯示當前終端下的所有進程信息,包括其他用戶的進程。與“x”選項結合時將顯示系統中所有的進程信息
-u: 使用以用戶為主的格式輸出進程信息。
-x: 顯示當前用戶在所有終端下的進程信息
相關顯示字段:
USER: 進程的用戶
PID: 進程的ID
%CPU: 進程占用的CPU百分比
%MEM: 占用內存的百分比
VSZ: 該進程使用的虛擬內存量(KB)
RSS: 該進程占用的物理內存量(KB)
TTY: 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
STAT: 該行程的狀態:
- D:不可中斷的休眠狀態;R:正在運行狀態;S:處于休眠狀態,可被喚醒;T:停止狀態,可能是在后臺暫停或進 程處于跟蹤 調試狀態;Z:僵尸進程,進程已經中止,但是部分程序還在內存當中
START: 該進程被觸發啟動時間
TIME: 該進程實際使用CPU運行的時間
COMMAND: 啟動該進程的命令名稱
STAT 狀態
狀態:
-D: 不可被喚醒的睡眠狀態,通常用于 I/O 情況
-R: 該進程正在運行
-S: 該進程處于睡眠狀態,可被喚醒 **
-T: 停止狀態,可能是在后臺暫停或進程處于出錯狀態。
-W: 內存交互狀態(從2.6內核開始無效)
-X: 死掉的進程(應該不會出現)
-z: 僵尸進程。進程已經中止,但是部分程序還在內存當中。**
-<: 高優先級(以下狀態在BSD格式中出現)
-N: 低優先級
-L: 被鎖入內存
-s: 包含子進程 **
-l: 多線程(小寫L)
-+: 位于后臺
-C: 進程占用cpu的百分比
2、top 查看動態進程信息命令
相關字段含義
第一行:
top - 19:28:18 當前系統時間
up 7:19 系統已經運行時間
2 users 當前登錄用戶數
Load average 系統平均負載,后面三個數字代表每1分鐘,5分鐘,15分鐘的平均負載
第二行:
Tasks: 進程總數
1 running: 正在運行的進程數
219 sleeping: 休眠的進程數
0 stopped: 中止的進程數
0 zombie: 僵死無相應的進程數
第三行:
第三行:
us: 用戶空間占用CPU百分比
sy: 內核空間占用CPU百分比
ni: 優先級調度占用CPU百分比
id: 空閑CPU百分比
wa: I/O等待占用
hi: 硬件終端占用
si: 軟件中斷占用
st: 虛擬化占用
第四行:
total: 總內存空間
free: 空閑內存
used: 已用內存
buff/cache: 物理內存和交換內存的緩沖區總和
第五行:
total: 總交換空間
free: 空閑交換空間
used: 已用交換空間
avail Mem: 可用物理空間
第六行:
PID: 進程id
USER: 進程所有者的用戶名
PR: 優先級
NI: 謙讓度值。負值表示高優先級,正值表示低優先級
VIRT: 進程使用的虛擬內存總量,單位kb
RES: 進程使用的物理內存大小,單位kb
SHR: 共享內存大小,單位kb
S: 進程狀態
%CPU: 上次更新到現在的CPU時間占用百分比
%MEM: 進程使用的物理內存百分比
TIME+: 進程使用的CPU時間總計,單位1/100秒
COMMAND :命令名/命令行
top命令全屏操作界面快捷鍵:
p: 按CPU排序
M: 按內存排序
T: 按時間排序
P: 進程IP,查看某個進程狀態
N: 根據啟動時間進行排序
數字鍵1: 顯示每個內核的CPU使用率
u/U: 指定顯示的用戶
h: 可以獲得top程序的在線幫助信息
q: 可以正常地退出top程序
注:若通過 top 排名工具發現某個進程CPU占用率非常高,需要終止該進程的運行,可以在 top操作界面中按k鍵,然后在列表上方將會出現""PLD to signal/kill [deLault pid = 3180]:”的提示信息,根據提示輸入指定進程的 PID號并按 Enter鍵,出現"send pid 5597 signal [15/sigterm]"的二次確認的提示信息,然后按Enter進行確認。
3、pgrep 查看進程信息命令
pgrep命令
- 根據特定條件查詢進程PID信息
常用參數:
- -l:選項可同時輸出對應的進程名以及PID
- -u:選項查詢特定用戶的進程
- -t:選項查詢在特定終端運行的進程
4、pstree 以樹形結構列出進程信息
pstree命令默認情況下只顯示各進程的名稱。
結合以下常用的參數使用:
-p:選項使用時可以同時列出對應的PID號
-u:選項可以列出對應的用戶名
-a:選項可以列出完整的命令信息
執行如下的“pstree -aup" 命令可以查看當前系統的進程樹,包括各進程對應的PID號、用戶名、完整命令等信息。從輸出結果中可以看出,systemd進程確實是Linux操作系統中所有進程的”始祖“
例1
pstree -aup hmj
?
5、jobs 命令
查看處于后臺的任務列表
常用的參數
-l: 選項可以同時顯示該進程對應的PID號
三、調度進程/終止進程
1、bg和fg 調度進程命令
使用bg (BackGround,后臺)命令,可以將后臺中暫停執行(如按Ctrl+Z組合鍵掛起)的任務恢復運行,繼續在后臺執行操作;
使用fg命令(ForeGround,前臺),可以將后臺任務重新恢復到前臺運行。
1、&符號
Linux 終端命令的末尾加上一個 &表示將這個任務放到后臺去執行,不用等待命令結束,直接執行下一條命令
2、bg命令
通過jobs命令查詢到的信息,可以通過bg命令將放入到后臺的程序繼續執行,但是不會顯示到前臺。
3、fg命令
通過jobs命令查詢到的信息,通過fg命令將放入到后臺的程序切換到前臺執行
2、終止進程
Ctrl + C
- 中斷正在執行的命令
kill、killall
- kill用于終止指定PID號的進程
- killall用于終止指定名稱的所有進程
- -9選項用于強制終止
kill -l :可以顯示所有級別對應的效果
常用的命令:
kill -9 (KILL):殺死一個進程。
killall :使用killall 命令可以通過進程名稱來終止進程,當需要結束系統中多個相同名稱的進程時,使用 killall命令將更加方便,效率更高。killall命令同樣也有""9"選項。例如,執行如下的"killall1-9 vim"命令可將所有名為vim的進程都強行終止
pkill
- 根據特定條件終止相應的進程
- 常用命令選項
- -U:根據進程所屬的用戶名終止相應進程
- -t:根據進程所在的終端終止相應進程
- -l:選項可同時輸出對應的進程名以及PID
pkill 使用 pkill命令可以根據進程的名稱、運行該進程的用戶、進程所在的終端等多種屬性終止特定的進程,大部分選項與pgrep命令基本類似,如-U”(指定用戶)、"-t”(指定終端)等選項,使用起來非常方便。
常用命令選項
-U:根據進程所屬的用戶名終止相應進程
-t:根據進程所在的終端終止相應進程
-l:選項可同時輸出對應的進程名以及PID
四 、計劃任務管理
1、一次性計劃任務 at
在Linux 操作系統中,除了用戶即時執行的命令操作以外,還可以配置在指定的時間、指定的日期執行預先計劃的系統管理任務〈如定期備份、定期采集監測數據)。CentoS系統中默認已安裝了at、cronie 軟件包,通過 atd和 crond 這兩個系統服務實現一次性、周期性計劃任務的功能,并分別通過 at、crontab 命令進行計劃任務設置
使用at命令設置的計劃任務只在指定的時間點執行一次,前提是對應的系統服務atd必須已經運行。需要注意的是,計劃執行任的時間、日期必須安排在當前系統的時刻之后,否則將無法正確設置計劃任務。 設置一次性計劃任務時,在 at命令行中依次指定計劃執行任務的時間、日期作為參數 (若只指定時間則表示當天的該時間,若只指定日期則表示該日期的當前時間),確認后將進入帶"at>"提示符的任務編輯界面,每行設置一條執行命令,可以依次設置多條語句,最后按ctrl+D 組合鍵提交任務所設置的命令操作將在計劃的時間點被依次執行。
date 顯示當前系統時間日期
at 16:23 2021-08-16
at>pgrep -U root | wc -l > /tmp/ps.root :任務設置完畢后按ctrl+d組合鍵提交
對于已經設置還未執行(未到時間點)的計劃任務,可以通過atq命令進行查詢。但已執行過的at任務將不會再出現在列表中。
atq
若要刪除指定編號的的at任務,可以通過atrm命令。刪除后的at任務將不會被執行,并且不會顯示atq命令的顯示結果中,但已經執行過的任務無法刪除。具體操作命令如下。
atrm 2 :刪除第2條計劃任務
2、crontab 周期性任務設置
crontab命令
- 按照預先設置的時間周期(分、時、日、月、周)重復執行用戶指定的命令操作
- 屬于周期性計劃任務
- 主要設置文件
- 全局配置文件,位于文件:/etc/crontab
- 系統默認的設置,位于目錄:/etc/cron.*/
- 用戶定義的設置,位于文件:/var/spool/cron/用戶名
?
/etc/crontab——系統任務配置文件
/etc/crontab文件中設置的是維護Linux操作系統所需的任務,Linux 操作系統及相關程序在安裝時可自動設置,不建議用戶手動修改此文件。例如,該文件中包括設置Shell環境、可執行路徑等變量的操作,以及每小時、每天、每周、每月需要執行的任務目錄。執行如下的"cat/etc/crontab"命令可以查看/etc/crontab文件的具體內容
管理crontab計劃任務命令
編輯計劃任務
crontab -e 【-u 用戶名】
查看計劃任務
crontab -l 【-u 用戶名】
刪除計劃任務
crontab -r 【-u 用戶名】
例:
crontab -e :開啟計劃任務
編輯頁面:
* * * * * /usr/bin/echo “123123” >> /opt/ :分時日月周+絕對路徑命令 保存退出
時間數值的特殊表示方法
* 表示該范圍內的任意時間
, 表示間隔的多個不連續時間點
- 表示一個連續的時間范圍
/ 表示間隔的時間頻率
例:
?
?
原文鏈接:https://blog.csdn.net/GaLiCHaoFan1/article/details/125756607
- 上一篇:Linux文件系統和日志分析
- 下一篇:C語言枚舉類型
相關推薦
- 2022-05-24 Pytho的HTTP交互httpx包模塊使用詳解_python
- 2022-05-02 Python+Flask編寫一個簡單的行人檢測API_python
- 2021-10-22 C#?基于NAudio實現對Wav音頻文件剪切(限PCM格式)_C#教程
- 2022-05-03 C#設計模式之簡單工廠模式_C#教程
- 2022-10-26 Python實戰基礎之Pandas統計某個數據列的空值個數_python
- 2023-10-30 springboot 配置文件加載順序
- 2023-04-18 Python實現常見的4種坐標互相轉換_python
- 2022-04-17 iOS喚起記住密碼的數字鍵盤,輸入的時候發生閃爍的問題
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支