日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

進程和計劃任務管理

作者:G咖喱炒飯 更新時間: 2022-07-18 編程語言

目錄

一、進程

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

欄目分類
最近更新