CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

程序與進程:

程序:

以靜態保存在硬盤、光盤等介質中能被計算機識別的可執行代碼和數據。vim

進程:

進程是程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操做系統結構的基礎,是在CPU及內存中運行的動態車程序代碼,一個進程能夠建立一個或多個子進程,而這個進程就是它子進程的父進程,每一個進程還包含多個線程。
進程是程序的一次執行過程,是臨時的,有生命期的,是動態產生,動態消亡的;任何進程均可以同其餘進行一塊兒併發執行;進程是系統進行資源分配和調度的一個獨立單位;進程由程序,數據和進程控制塊三部分組成。緩存

線程:

在早期的操做系統中並無線程的概念,進程是擁有資源和獨立運行的最小單位,也是程序執行的最小單位。可是,因爲計算機的發展,對CPU的要求愈來愈高,進程之間的切換開銷較大,已經沒法知足愈來愈複雜的程序的要求了。因而就發明了線程,線程是程序執行中一個單一的順序控制流程,是程序執行流的最小單元,是處理器調度和分派的基本單位。併發

進程與線程的區別:

  • 線程是程序執行的最小單位,而進程是操做系統分配資源的最小單位;
  • 一個進程由一個或多個線程組成,線程是一個進程中代碼的不一樣執行路線
  • 進程之間相互獨立,但同一進程下的各個線程之間共享程序的內存空間(包括代碼段,數據集,堆等)及一些進程級的資源(如打開文件和信號等),某進程內的線程在其餘進程不可見;
  • 線程上下文切換比進程上下文切換要快得多。

以虛擬機運行爲例子解釋一下進程與線程的關係:

咱們能夠看到下圖,首先我們的電腦是由硬件組成,如:主板、CPU、內存、硬盤、顯卡等;而後咱們會在硬件的基礎上給電腦裝上一個系統,它至關於計算機的管理者,它負責任務的調度,資源的分配和管理,統領整個計算機硬件;有了系統咱們才能在電腦上安裝一些不一樣功能的應用程序。而咱們用的VMware虛擬機就是一個運行程序,當咱們運行虛擬機時系統就會建立相關的多個進程,而進程中又分爲多個不一樣的線程。如圖中的VIO、VPU、VMEM的即是不一樣的線程,而這些線程一塊兒組成了一個進程。編輯器

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

查看進程:

咱們使用不一樣的查看命令所查看到的進程狀態也不一樣。ide

查看靜態進程:

ps命令:----------查看靜態的進程統計信息操作系統

經常使用的命令選項組合:命令行

1.ps aux 命令。線程

a:----------顯示當前終端下的全部進程信息,包括其餘用戶的進程。

u:----------使用以用戶爲主的格式輸出進程信息。

x:----------顯示當前用戶在全部終端下的進程,tty本地終端,ps/0遠程終端。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

下面我來解釋一下輸出的進程信息的含義:3d

USER:啓動該進程的用戶帳號名稱
PID:該進程的ID號,在當前系統中是惟一的
TTY:該進程在哪一個終端上運行。「?」表示未知,通常當前終端都是「?」
%CPU:該進程佔用CPU的百分比
%MEM:該進程佔用內存的百分比
VSZ:佔用虛擬內存(swap空間)的大小
RSS:佔用常駐內存(物理內存)的大小
STAT:顯示了進程當前的狀態,如S(可中斷休眠)、s(父進程)、D(不可中斷休眠)、R(運行)、l(多線性進程)Z(殭屍進程)、<(高優先級)、N(低優先級)、+(前臺進程)。
START:該進程啓動的時間
TIME:該進程佔用CPU時間
COMMAND:啓動該進程的命令的名稱

2.ps -elf命令。code

-e:---------顯示系統內的全部進程信息。

-l:----------使用長(long)格式顯示進程信息。

-f:----------使用完整的(full)格式顯示進程信息。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

下面我來解釋一下輸出的進程信息的含義:

UID:該進程用戶ID
PID:該進程的ID號
PPID:該進程的父進程的ID號
C:該進程的CPU佔用率,以整數表示
PIR:該進程用戶態的優先級
NI:該進程的內核態的優先級(數值範圍-20到19)
ADDR:「-」表示進程正在運行
SZ:該進程佔用swap交換分區的總量
WCHAN:該進程在內核中的名稱
STIME:進程的啓動時間
TTY:與進程關聯的終端
TIME:進程佔用CPU的累計時間
CMD:啓動該進程的命令的名稱

3.ps aux | grep login,ps命令用管道操做加上「grep」過濾命令能夠查看指定進程的信息。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

查看動態進程信息:

top命令:----------查看動態的進程排名信息(3s刷新一次)

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)
下面我解釋一下輸出進程信息所表明的含義:

Tasks(系統任務)信息:total(總進程數),running(正在運行進程數),sleeping(休眠進程數),stopped(停止進程數),zombie(殭屍進程數)。

%CPU信息:us(用戶佔用),sy(內核佔用),ni(優先級調度佔用),id(空閒CPU),wa(I/O等待佔用),hi(硬件中斷佔用),si(軟件中斷佔用),st(虛擬化佔用)。

KiB(單位) Mem(內存)信息:total(總內存空間),free(可以使用內存),used(已用內存),buff/cache(緩存區域)
KiB(單位)Swap(交換空間)信息:total(總交換空間),free(可以使用交換空間),used(已用交換空間),avail Mem(內存使用量)。

在top命令的全屏操做界面中,按[C]鍵根據CPU佔用狀況對進程列表進行排列,或按[M]鍵根據內存佔用狀況進行排列,按[N]鍵根據啓動時間進行排序,按[h]鍵得到top程序的在線幫助信息,按[q]鍵能夠退出top程序。按[k]鍵,而後在列表上方將會出現「PID to kill」的提示信息,根據提示輸入指定進程的PID號可終止對應的進程。

查看特定進程PID:

pgrep命令:----------根據特定條件查詢進程PID

經常使用選項:

-l:------------顯示進程名
-U:----------指定特定用戶
-t:-----------指定終端

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)
CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

查看進程「樹」:

pstree命令:----------以樹形結構列出進程信息

經常使用選項:

-a:----------顯示詳細信息
-u:----------顯示進程對應的用戶名
-p:----------顯示進程的PID

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

查看指定用戶進程「樹」,直接用命令「pstree -ap 用戶名」便可。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

控制進程:

手工啓動:

  • 前臺啓動:用戶輸入命令,直接執行程序。
  • 後臺啓動:當咱們用前臺運行執行一些運行時間較長的程序時,咱們必須等待該程序執行完畢才能進行其餘操做,而咱們不想等待的話,就可使用後臺啓動。只需在前臺啓動的命令行尾加上「&」符號便可。

1.當咱們用前臺啓動複製一個較大的文件時,咱們須要等待操做完成才能進行其它命令的輸入。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

2.當咱們後臺啓動時任然能夠進行命令輸入。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

調度啓動:

at命令:----------設置一次性計劃任務
格式:at ...[HH:MM]...[yyyy-mm-dd] 例如:at 18:00 2019-08-24

[Ctrl+D]鍵:----------------提交計劃任務
atq命令:-------------------查看全部等待執行計劃任務
atrm命令:-----------------刪除等待執行的計劃任務

1.設置一條計劃任務,而後等待執行,時間到達後自動執行成功。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

2.設置兩個計劃任務,而後用「atq」命令查看,再用「atrm」命令刪除一個任務。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

crontab命令:----------設置週期性計劃任務

經常使用選項:

-e [-u 用戶名] ----------編輯某個用戶的cron服務
-l [-u 用戶名]-----------列出某個用戶cron服務的詳細內容
-r [-u 用戶名]-----------刪除某個用戶的全部cron服務

crontab任務配置的格式:
CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

每一個字段的取值範圍:

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

時間數值的特殊表示方法:

「 * 」  :表示該範圍內的任意時間
「 ,」:表示間隔的多個不連續時間點
「 - 」  :表示一個連續的時間範圍
「 / 」  :指定間隔的時間頻率

例子:

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

1.編輯root用戶的cron服務,不指定用戶則是當前用戶。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

2.進入cron服務編輯界面,用法與vim編輯器相似。添加一條cron任務後,「wq」保存退出。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

3.等到時間到了後,查看/opt/目錄,zhangsan目錄已經複製到/opt/目錄下了。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

4.用「-l」選項查看cron任務列表,再用「-r」選項刪除全部cron任務。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

進程的先後臺調度:

(1)[Ctrl+Z]組合鍵:將當前進程掛起,即調入後臺並中止執行。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

(2)jobs命令:查看處於後臺的任務列表,結合「-l」選項能夠顯示PID。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

(3)fg命令:將後臺進程恢復到前臺運行,可指定任務序號。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

(4)bg命令:將後臺中止的任務恢復運行,且繼續在後臺運行。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

終止進程的運行:

(1)[Ctrl+C]組合鍵:強制中斷正在執行的命令

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

(2)kill命令:用於終止指定PID號的進程,須要使用進程的PID號做爲參數,結合「-9」選項能夠強制終止進程。慎用,可能會致使數據丟失。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

(3)killall命令:用於終止指定名稱的全部進程,killall命令也有「-9」選項

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

(4)pkill命令:根據特定條件終止相應的進程

經常使用選項:(大部分選項與pgrep命令基本相似)

-U:-------------根據進程所屬的用戶名終止相應進程
-t:--------------根據進程所在的終端終止相應進程
-9:-------------強制終止進程

1.能夠看到咱們再終端用zhangsan用戶登陸。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

2.此時咱們在遠程終端用pkill命令強制關閉zhangsan用戶的全部進程。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

3.而此時終端上的zhangsan用戶已經被強制註銷了。

CentOS 7的進程查看與控制,手工啓動與調度啓動(全程演示)

相關文章
相關標籤/搜索