openEuler系統(tǒng)管理- 課件 第8章 系統(tǒng)啟動與進程管理_第1頁
openEuler系統(tǒng)管理- 課件 第8章 系統(tǒng)啟動與進程管理_第2頁
openEuler系統(tǒng)管理- 課件 第8章 系統(tǒng)啟動與進程管理_第3頁
openEuler系統(tǒng)管理- 課件 第8章 系統(tǒng)啟動與進程管理_第4頁
openEuler系統(tǒng)管理- 課件 第8章 系統(tǒng)啟動與進程管理_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

系統(tǒng)啟動與進程管理深入了解openEuler系統(tǒng)啟動與進程管理01理解系統(tǒng)啟動的重要性與原理系統(tǒng)啟動管理在ARM架構中,UEFI的執(zhí)行過程同樣是先初始化硬件設備,引導EFI系統(tǒng)運行,然后找到GPT中的BootLoader并啟動。BIOS的執(zhí)行過程是先初始化硬件設備,獲取主機的各項硬件配置,然后將MBR中的BootLoader讀取到內(nèi)存中,并將控制權交給BootLoader。BIOS一般會被寫入主板ROM中,主要功能是初始化硬件,提供硬件的軟件抽象。在硬件啟動這一階段,需要達成的目的是借助BIOS/UEFI將硬件的控制權轉(zhuǎn)交給BootLoader,為后續(xù)的系統(tǒng)啟動做好準備。啟動目的硬件啟動的目的是借助固定的程序,將硬件的控制權轉(zhuǎn)交給BootLoader。因為操作系統(tǒng)由硬件上的不同文件組成,需要一個固定程序?qū)硬煌僮飨到y(tǒng)并啟動主引導程序。BIOS執(zhí)行UEFI執(zhí)行硬件啟動根據(jù)硬件的差別,硬件啟動一般主要有兩種方式,即BIOS和UEFI。在x86架構中,以BIOS為主;在ARM架構中,以UEFI為主。狹義的BIOS指BIOS本身,廣義的BIOS包括UEFI,UEFI的生態(tài)更加開放。控制權轉(zhuǎn)交啟動方式GRUB2相比GRUBLegacy具有更多功能,如加密操作系統(tǒng)、恢復系統(tǒng)密碼、定制開機畫面等,為用戶提供了更多的選擇和便利。功能增強在這個階段中,BootLoader會將控制權轉(zhuǎn)交給內(nèi)核,啟動內(nèi)核之后,接下來的任務將交由內(nèi)核完成。控制權轉(zhuǎn)交BootLoader是一類程序的總稱,如LILO、GRUBLegacy等,一般也稱為內(nèi)核加載程序。GRUB2是GRUB的升級版,能實現(xiàn)選擇不同的操作系統(tǒng)啟動項、動態(tài)改變引導參數(shù)等更多功能。由于GRUBLegacy啟動加載器當前已經(jīng)難以維護,所以GRUB重寫了代碼,并在其基礎上實現(xiàn)了模塊化,增強了移植性。GRUB升級在openEuler操作系統(tǒng)啟動過程中,BootLoader引導階段的任務是加載Linux內(nèi)核以及可選的初始RAM磁盤。它可以選擇磁盤上多個操作系統(tǒng)內(nèi)核中的一個進行啟動,或從系統(tǒng)分區(qū)中選擇特殊的內(nèi)核配置。引導任務BootLoader引導程序總稱階段進入首個進程systemd具有啟動速度快、按需啟動服務、管理掛載點等多種優(yōu)勢,能夠更好地實現(xiàn)系統(tǒng)的初始化和服務管理。內(nèi)核引導由systemd或init完成相關的啟動過程,包括啟動服務、啟動Shell等。systemd在系統(tǒng)初始化方面具有更多的優(yōu)勢和功能。隨著技術的發(fā)展,systemd逐漸替代init成為主流的系統(tǒng)初始化工具,openEuler也順應了這一趨勢,采用systemd來提高系統(tǒng)的性能和管理效率。systemd優(yōu)勢在完成內(nèi)核加載程序啟動之后,就進入內(nèi)核引導階段。此時操作系統(tǒng)會將控制權由內(nèi)核轉(zhuǎn)交給運行中的進程systemd或init。openEuler操作系統(tǒng)啟動過程中的第一個進程是PID為1的進程,它就是systemd或init。當前大部分的Linux發(fā)行版都采用systemd來代替init,openEuler也采用systemd來實現(xiàn)系統(tǒng)初始化功能。替代init啟動過程14523啟動某個target的時候,systemd就會啟動里面所有的unit。用戶可以通過修改unit文件自定義unit,并將多個unit設為一個target,按計劃啟動。啟動方式systemd在系統(tǒng)初始化過程中起著關鍵的作用,它能夠有效地管理和協(xié)調(diào)各個服務的啟動,確保系統(tǒng)的正常運行。初始化主體系統(tǒng)初始化階段由systemd完成。systemd啟動之后,會根據(jù)預先設定的target運行相應的服務。系統(tǒng)初始化用戶可以自定義啟動單元或者修改啟動順序,以滿足不同的使用需求。例如,用戶可以根據(jù)自己的業(yè)務需求,調(diào)整某些服務的啟動順序。服務內(nèi)容這些服務包括按/etc/fstab掛載目錄、設定定時器、啟動日志等。target是一個unit組,包含許多相關的unit。自定義啟動systemd作用啟動終端為用戶提供了與系統(tǒng)進行交互的界面,用戶可以在終端中輸入命令,執(zhí)行各種操作,實現(xiàn)對系統(tǒng)的管理和使用。啟動終端啟動完成終端切換至此,通過以上5個階段,控制權從硬件一路轉(zhuǎn)交至軟件,最終傳遞到用戶手中,openEuler操作系統(tǒng)啟動完成。在控制臺上,模擬這6個tty字符終端,分別對應/dev/tty1/~6,可以按“Alt+Fn”(Fn表示F1~F6)組合鍵來進行切換。/dev/tty0為桌面終端,也就是用戶目前正在使用的終端。用戶交互終端指的是用戶交互界面或者接口。在系統(tǒng)完成初始化之后,首先會執(zhí)行/sbin/mingetty開啟6個tty字符終端。驗證登錄操作系統(tǒng)會比對/etc/nologin、/etc/passwd、/etc/shadow等文件進行驗證登錄。在登錄成功后,屏幕將輸出相關信息,并加載用戶目錄下設置的環(huán)境變量,等待用戶輸入。終端定義02了解systemd的特性與配置系統(tǒng)初始化配置systemd支持按需啟動,系統(tǒng)運行狀態(tài)動態(tài)變化,用戶難以準確知道系統(tǒng)當前運行的服務。systemd快照功能提供了將當前系統(tǒng)運行狀態(tài)保存并恢復的保障。掛載點管理systemd具有比UpStart強的并行啟動能力,采用了socket和D-Bus激活等技術啟動服務,啟動速度更快。它的宗旨是盡可能減少不必要的進程,并且將更多的進程并行啟動。事務性依賴管理系統(tǒng)啟動過程中各工作可能存在依賴關系,systemd維護著“事務一致性”的概念,確保所有相關的服務都可以正常啟動而不會出現(xiàn)互相依賴、死鎖的情況。傳統(tǒng)的Linux系統(tǒng)中,用戶通過/etc/fstab文件維護固定的文件系統(tǒng)掛載點。而systemd內(nèi)建了自動掛載服務,實現(xiàn)了動態(tài)掛載,同時兼容/etc/fstab文件,用戶無須另外安裝autofs服務。啟動速度快按需啟動服務系統(tǒng)快照與恢復systemd具有按需啟動的能力,只有在某個服務被真正請求的時候才啟動它。當該服務結(jié)束時,systemd可以關閉它,等待下次需要時再次啟動,避免了服務啟動時間過長以及系統(tǒng)資源的浪費。systemd特性unit查看路徑systemd具有和SysV以及LSB初始化腳本兼容的特性。系統(tǒng)中已經(jīng)存在的服務和進程無須修改,降低了系統(tǒng)向systemd遷移的成本,使得systemd替換現(xiàn)有初始化系統(tǒng)成為可能。當存在同名文件時,優(yōu)先采用優(yōu)先級較高的配置文件,確保系統(tǒng)使用正確的配置。systemd其他特性systemd開啟和監(jiān)督操作系統(tǒng)是基于unit的,unit的名稱由一個與配置文件對應的名字和類型組成。unit有多種類型,如Serviceunit、Targetunit等。兼容性操作單位路徑優(yōu)先級systemd采用cgroup特性跟蹤和管理進程的生命周期。cgroup主要用來實現(xiàn)系統(tǒng)資源配額管理,提供了類似文件系統(tǒng)的接口,使用方便。當進程創(chuàng)建子進程時,子進程會繼承父進程的cgroup。所有可用的systemdunit可以通過3條路徑查看,分別是/usr/lib/systemd/system/、/run/systemd/system/、/etc/systemd/system/,這3條路徑的優(yōu)先級自上而下遞減。進程管理unit類型介紹systemd開啟和監(jiān)督操作系統(tǒng)是基于unit的,也就是說,systemd操作的基本單位是unit。unit的名稱由一個與配置文件對應的名字和類型組成。例如name.serviceunit有一個具有相同名字的配置文件,是守護進程name的一個封裝單元。unit查看與優(yōu)先級所有可用的systemdunit可以通過以下3條路徑查看:

在/usr/lib/systemd/system/目錄下,可查看軟件包安裝時產(chǎn)生的systemdunit;

在/run/systemd/system/目錄下,可查看運行時創(chuàng)建的systemdunit;

在/etc/systemd/system/目錄下,可查看由root用戶創(chuàng)建和管理的systemdunit。這3條路徑的優(yōu)先級自上而下遞減,即存在同名文件時,優(yōu)先采用優(yōu)先級較高的配置文件。openEuler運行級別運行級別定義運行級別定義了服務器啟動后的狀態(tài)。在openEuler操作系統(tǒng)中,systemd用目標替代運行級別的概念,提供了更大的靈活性。常規(guī)運行級別目標描述0runlevel0.target、poweroff.target關閉系統(tǒng)1/s/singlerunlevel1.target、rescue.target單用戶模式2、4runlevel2.target、runlevel4.target、multi-user.target用戶定義/域特定運行級別。默認等同于33runlevel3.target、multi-user.target多用戶,非圖形化環(huán)境。用戶可以通過多個控制臺或網(wǎng)絡登錄5runlevel5.target、graphical.target多用戶,圖形化環(huán)境。通常為所有運行級別為3的服務外加圖形化登錄6runlevel6.target、reboot.target重啟系統(tǒng)rescuerescure.target救援模式emergencyemergency.target緊急模式(緊急Shell)救援與緊急模式在救援模式下,將掛載所有本地文件系統(tǒng),但不會啟動正常服務,比如網(wǎng)絡等,只會啟動很少的服務。救援模式多用于系統(tǒng)無法正常啟動的情況,此外,可以在救援模式下執(zhí)行一些重要的救援操作,例如重置root密碼。如需要改變當前系統(tǒng)為救援模式,可在root權限下執(zhí)行如下命令:[root@openEuler~]#systemctlrescue命令執(zhí)行后,窗口會有如下輸出信息:Youareinrescuemode.Afterloggingin,type"journalctl-xb"toviewsystemlogs,"systemctlreboot"toreboot,"systemctldefault"or"exit"tobootintodefaultmode.Giverootpasswordformaintenance(orpressControl-Dtocontinue):假如此時想要從救援模式切換到正常模式,需要重啟操作系統(tǒng)。與救援模式相比,緊急模式下不啟動任何服務,不會掛載任何文件系統(tǒng),用戶只會打開一個原始的Shell。因此緊急模式多適用于調(diào)試目的和修復系統(tǒng)。如需要改變當前系統(tǒng)為緊急模式,可在root權限下執(zhí)行如下命令:[root@openEuler~]#systemctlemergency命令執(zhí)行后,窗口會有如下輸出信息:Youareinemergencymode.Afterloggingin,type"journalctl-xb"toviewsystemlogs,"systemctlreboot"toreboot,"systemctldefault"or"exit"tobootintodefaultmode.Giverootpasswordformaintenance(orpressControl-Dtocontinue):假如此時想要從緊急模式切換到正常模式,同樣需要重啟操作系統(tǒng)。在openEuler中,systemd提供systemctl命令來運行、關閉、重啟、顯示、啟用、禁用系統(tǒng)服務。與sysvinit命令功能類似,當前版本依然兼容service和chkconfig命令,但建議統(tǒng)一用systemctl進行系統(tǒng)服務管理。systemctl命令openEuler服務控制target是一組unit的集合,所以當用戶想在systemd中自定義一些服務模塊時,只需在相應的target目錄下寫入unit配置文件即可。每個unit對應一個.service文件(即服務),這些服務分為兩類:系統(tǒng)服務和用戶服務。系統(tǒng)服務是用戶登錄前運行的程序,而用戶服務是用戶登錄后運行的程序。對于每個.service文件,需要配置3個字段:Unit代表啟動順序與依賴關系;Service代表啟動行為,是必選字段;Install代表服務所在的target。openEuler服務控制以user.service為例,使自定義服務模塊生效并設置自啟動,有以下兩種方法。

直接使用systemctl命令:[root@openEuler~]#systemctlenableusr.service

手動創(chuàng)建軟連接:[root@openEuler~]#ln-s/usr/lib/systemd/system/user.service/usr/lib/systemd/

system/local-fs.target.wants/usr.service執(zhí)行以下命令重新加載,使配置生效。[root@openEuler~]#systemctldaemon-reloadopenEuler服務控制以user.service為例,使自定義服務模塊生效并設置自啟動,有以下兩種方法。

直接使用systemctl命令:[root@openEuler~]#systemctlenableusr.service

手動創(chuàng)建軟連接:[root@openEuler~]#ln-s/usr/lib/systemd/system/user.service/usr/lib/systemd/

system/local-fs.target.wants/usr.service執(zhí)行以下命令重新加載,使配置生效。[root@openEuler~]#systemctldaemon-reloadopenEuler服務控制【示例8-5】#查詢服務是否被激活[root@openEuler~]#systemctlis-activename.serviceinactive選項is-active的返回結(jié)果及說明如表8-5所示。openEuler服務控制【示例8-6】#查詢服務是否開機啟動[root@openEuler~]#systemctlis-enabledfirewalld.servicedisabled選項is-enabled的返回結(jié)果及說明如表所示。返回結(jié)果說明enabled服務已經(jīng)通過/etc/systemd/system/目錄下的Alias=別名、.wants/或.requires/符號鏈接被永久啟用enabled-runtime已經(jīng)通過/run/systemd/system/目錄下的Alias=別名、.wants/或.requires/符號鏈接被臨時啟用linked雖然單元文件本身不在標準單元目錄中,但是指向此單元文件的一個或多個符號鏈接已經(jīng)存在于/etc/systemd/system/永久目錄中l(wèi)inked-runtime雖然單元文件本身不在標準單元目錄中,但是指向此單元文件的一個或多個符號鏈接已經(jīng)存在于/run/systemd/system/臨時目錄中masked已經(jīng)被/etc/systemd/system/目錄永久屏蔽(符號鏈接指向/dev/null文件),因此start操作會失敗masked-runtime已經(jīng)被/run/systemd/systemd/目錄臨時屏蔽(符號鏈接指向/dev/null文件),因此start操作會失敗static服務尚未被啟用,并且單元文件的Install字段中沒有可用于enable命令的選項indirect服務尚未被啟用,但是單元文件的Install字段中Also選項的值列表非空(也就是列表中的某些單元可能已被啟用),或者該服務擁有其他別名符號鏈接disabled服務尚未被啟用,但是單元文件的Install字段中存在可以使enable命令有效的選項generated單元文件是被單元生成器動態(tài)生成的。被生成的單元文件可能并未被直接啟用,而是被單元生成器隱式啟用transient單元文件是被運行時API動態(tài)臨時生成的。臨時單元文件可能并未被啟用bad單元文件不正確或者出現(xiàn)其他錯誤openEuler服務控制【示例8-7】#列出Nginx的所有依賴[root@openEuler~]#systemctllist-dependenciesnginx.service#列出Nginx的所有依賴,包括依賴的target內(nèi)容[root@openEuler~]#systemctllist-dependencies--allnginx.servicesystemd還支持通過systemctl命令對系統(tǒng)進行關機、重啟、休眠等一系列操作,同時也能兼容部分Linux常用管理命令。systemctl系統(tǒng)管理命令及功能如表8-7所示。系統(tǒng)啟動與進程管理openEuler進程管理全面解析第8章02多任務系統(tǒng)的進程調(diào)配與監(jiān)控進程管理進程的概念為了讓程序源碼從人類易于理解的高級語言轉(zhuǎn)換成計算機能夠執(zhí)行的機器語言,所有程序都需要經(jīng)過編譯、鏈接、加載和執(zhí)行4個階段。但在同一段時間內(nèi),機器通常并不只執(zhí)行一個程序,而是并發(fā)地執(zhí)行多個程序。因此,為了對并發(fā)執(zhí)行的程序加以描述和控制,操作系統(tǒng)引入了“進程”這一抽象概念。進程是計算機中已運行程序的實體,是程序的具體實現(xiàn)。如圖所示,每個進程在被創(chuàng)建的時候,都會被分配一段內(nèi)存空間,即系統(tǒng)給進程分配一定的邏輯地址空間,包含棧、堆、bss段、data段和代碼段。每個進程都有一個唯一的PID,用于系統(tǒng)內(nèi)核追蹤相應進程。操作系統(tǒng)的第一個進程是systemd,其他所有進程都是其后代,它的PID為1。每個進程都有自己的生命周期,包括創(chuàng)建、執(zhí)行、終止和刪除等階段。在系統(tǒng)運行過程中,這些階段將被反復執(zhí)行成千上萬次。進程的概念任何進程都可以通過復制自己地址空間的方式創(chuàng)建子進程,子進程中記錄著父進程的PID(PPID)。當一個進程創(chuàng)建一個新進程時,創(chuàng)建進程的進程(父進程)使用名為fork()的系統(tǒng)調(diào)用。當fork()被調(diào)用的時候,它會為新創(chuàng)建的進程(子進程)獲得一個進程描述符,并且設置新的PID,復制父進程的進程描述符給子進程。系統(tǒng)使用exec()調(diào)用把新程序復制到子進程的地址空間。由于共享同樣的地址空間,寫入新進程的數(shù)據(jù)會引發(fā)頁錯誤的異常。因此,此時內(nèi)核會給子進程分配新的物理頁。當程序執(zhí)行完成時,使用exit()系統(tǒng)調(diào)用來終止子進程。exit()會釋放進程的大部分數(shù)據(jù)結(jié)構,并且把相應終止消息通知給父進程。此時,子進程被稱為僵尸進程(ZombieProcess)。進程的概念直到父進程通過wait()系統(tǒng)調(diào)用知悉子進程終止之前,子進程都不會被完全清除。只有父進程知悉子進程終止時,它才會清除子進程的所有數(shù)據(jù)結(jié)構和進程描述符。進程在其生命周期中會在各個狀態(tài)中切換。

運行態(tài)(用戶運行態(tài)和內(nèi)核運行態(tài))和就緒態(tài)合并為運行狀態(tài),表示進程正在運行或準備運行。openEuler操作系統(tǒng)中使用TASK_RUNNING宏表示此狀態(tài)。

可中斷睡眠態(tài)(淺度睡眠):進程正在睡眠(被阻塞),等待資源到來時被喚醒,也可以通過其他進程信號或時鐘中斷來喚醒,進入運行隊列。openEuler

操作系統(tǒng)使用TASK_INTERRUPTIBLE宏表示此狀態(tài)。

不可中斷睡眠態(tài)(深度睡眠):它和可中斷睡眠態(tài)基本類似,但有一點不同,就是不可被其他進程信號或時鐘中斷喚醒。openEule操作系統(tǒng)使用TASK_UNINTERRUPTIBLE宏表示此狀態(tài)。

暫停狀態(tài):進程暫停執(zhí)行并接受某種處理,如正在接受調(diào)試的進程處于此狀態(tài)。openEuler操作系統(tǒng)使用TASK_STOPPED宏表示此狀態(tài)。

僵停狀態(tài):進程已經(jīng)結(jié)束但未釋放。openEuler操作系統(tǒng)使用TASK_ZOMBIE宏表示此狀態(tài)。取值范圍操作系統(tǒng)基于優(yōu)先級分配CPU資源。優(yōu)先級高的進程有優(yōu)先執(zhí)行的權利,操作系統(tǒng)會根據(jù)進程的優(yōu)先級來決定CPU時間的分配。例如,對于實時性要求較高的進程,會給予較高的優(yōu)先級,確保其能夠及時得到執(zhí)行。優(yōu)先級概念PRI與NIPRI表示執(zhí)行先后順序,NI影響優(yōu)先級。PRI是進程的優(yōu)先級數(shù)值,其值越小,進程的優(yōu)先級越高;NI是nice值,可理解為“謙讓度”,通過調(diào)整NI值可以影響進程的優(yōu)先級。例如,當NI值為負值時,進程的優(yōu)先級會變高進程優(yōu)先級使用nice和renice命令調(diào)整。nice和renice命令可以調(diào)整進程的nice值,從而改變進程的優(yōu)先級。nice命令用于在啟動進程時設置其優(yōu)先級,renice命令可以對已經(jīng)運行的進程的優(yōu)先級進行調(diào)整。例如,使用nice-n-18vi可以將Vi編輯器的運行優(yōu)先級設置為-18。優(yōu)先級調(diào)整nice和renice取值為-20~19。nice和renice命令的取值范圍是-20~19,在這個范圍內(nèi)調(diào)整nice值可以有效地改變進程的優(yōu)先級。例如,將nice值設置為-20可以使進程具有最高的優(yōu)先級。查看用戶進程who命令主要用于查看當前系統(tǒng)中的用戶進程情況。如果用戶需要確認其他用戶是否發(fā)起進程,或者root用戶希望監(jiān)視每個登錄的用戶此時此刻的所作所為,就可以使用who命令。who命令使用起來非常方便,可以比較準確地反映用戶的情況,因此應用非常廣泛?!臼纠?-11】#查看當前系統(tǒng)中的用戶情況[root@openEuler~]#whorootpts/02022-07-3119:54()查看進程ps命令是最基本且非常強大的進程查看命令之一。使用該命令可以確定有哪些進程正在運行、運行的狀態(tài)、進程是否結(jié)束、有沒有僵尸進程、哪些進程占用了過多的資源等信息。大部分進程信息都是可以通過執(zhí)行該命令得到的。此外,ps命令還可以用于監(jiān)控后臺進程的工作情況?!臼纠?-12】#顯示系統(tǒng)終端上的所有進程[root@openEuler~]#ps-aPIDTTYTIMECMD12175pts/600:00:00bash24526pts/000:00:00vsftpd29478pts/500:00:00ps32461pts/01-01:58:33sh中斷進程命令格式:kill[-s[信號]|-p][-a][進程號]...kill-l[信號]kill命令是通過向進程發(fā)送指定的信號來結(jié)束進程的。如果沒有指定發(fā)送的信號,那么默認為TERM信號。TERM信號將終止所有不能捕獲該信號的進程。至于那些可以捕獲該信號的進程可能就需要使用kill-9命令才能終止。通常執(zhí)行kill命令前,需要通過ps等命令確定需要中斷的進程號?!臼纠?-13】#顯示系統(tǒng)終端上的所有進程,確定要中斷的進程號[root@openEuler~]#ps-aPIDTTYTIMECMD12175pts/600:00:00bash24526pts/000:00:00vsftpd29478pts/500:00:00ps32461pts/01-01:58:33sh[root@openEuler~]#kill-932461調(diào)度進程(1)定時執(zhí)行程序。用戶使用at命令可以在指定時刻執(zhí)行指定的命令序列,該命令至少需要指定一個命令和一個執(zhí)行時間。at命令可以只指定時間,也可以一起指定時間和日期。命令格式:at[-V][-q[隊列]][-f[文件名]][-mldbv][時間]at-c[作業(yè)][作業(yè)]...at命令允許使用一套相當復雜的時間指定方法,如下所示。接受在當天的hh:mm(小時:分鐘)式的時間指定。如果該時間已經(jīng)過去,那么就延至第二天執(zhí)行。使用midnight(深夜)、noon(中午)等比較模糊的詞語來指定時間。采用12小時計時制,即在時間后面加上am(上午)或者pm(下午)來說明是上午還是下午。指定命令執(zhí)行的具體日期,指定格式為monthday(月日)或者mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年)。指定的日期必須跟在指定時間的后面。調(diào)度進程(2)周期性運行任務。at命令會在某一時間執(zhí)行一定的任務,但是它只能執(zhí)行一次。也就是說,當指定了運行命令后,系統(tǒng)在指定時間執(zhí)行任務了后,命令就不會再執(zhí)行了。但是在很多情況下需要周期性重復執(zhí)行一些命令,這時候就需要使用crontab命令調(diào)用后臺cron進程來實現(xiàn)。crontab命令用于安裝、刪除或者顯示用于驅(qū)動cron進程的表格。用戶把需要執(zhí)行的命令序列放到crontab文件中以獲得執(zhí)行,每個用戶都可以擁有自己的crontab文件。調(diào)度進程cron服務的內(nèi)容由crontab文件指定,因此需要在crontab文件中輸入需要執(zhí)行的命令和時間。該文件中每行都包括6個域,其中前5個域是指定命令被執(zhí)行的時間,最后一個域是要被執(zhí)行的命令。每個域之間使用空格或者制表符分隔,格式如下:minutehourday-of-monthmonth-of-yearday-of-weekcommands這些域都不能為空,必須指定值。除了指定數(shù)字,還可以指定幾個特殊的符號,即“*”“/”“-”“,”其中,“*”代表取值范圍內(nèi)的所有數(shù)字,“/”代表每的意思,“*/5”表示每5個單位,“-”代表從某個數(shù)字到某個數(shù)字,“,”用于分開幾個離散數(shù)字。對于要執(zhí)行的命令,調(diào)用的時候需要寫出命令的完整路徑。調(diào)度進程(3)掛起/恢復進程。將“&”放在命令的最后,便可把相應命令放到后臺執(zhí)行。作業(yè)控制允許進程掛起并可以在需要時恢復進程的運行,被掛起的進程恢復后將從中止處開始繼續(xù)運行。只要在鍵盤上按“Ctrl+Z”組合鍵,即可掛起當前的前臺作業(yè)或當前執(zhí)行的命令。使用jobs命令可以顯示Shell的作業(yè)清單,包括具體的作業(yè)、作業(yè)號以及作業(yè)當前所處的狀態(tài)?;謴瓦M程執(zhí)行時,有兩種選擇:用fg命令將掛起的作業(yè)放回到前臺執(zhí)行;用bg命令將掛起的作業(yè)放到后臺執(zhí)行。靈活使用上述命令,將大大方便用戶對于進程的使用及控制。系統(tǒng)性能監(jiān)控#查看操作系統(tǒng)概要信息[root@openEuler~]#cat/etc/os-releaseNAME="openEuler"VERSION="20.03(LTS)"ID="openEuler"VERSION_ID="20.03"PRETTY_NAME="openEuler20.03(LTS)"ANSI_COLOR="0;31"#查看CPU信息[root@openEuler~]#lscpu#查看內(nèi)存信息[root@openEuler~]#freetotalusedfreesharedbuff/cacheavailableMem:1513184186392994024628332768991828Swap:000#默認以KB為單位計算內(nèi)存大小,為更美觀地讀取及輸出,可加上-m\g選項,表示以MB或GB為單位計算系統(tǒng)性能監(jiān)控#查看磁盤信息[root@openEuler~]#dfFilesystem SizeUsedAvailUse%Mountedondevtmpfs 725M0725M0%/devtmpfs 739M0739M0%/dev/shmtmpfs 739M624K739M1%/runtmpfs 739M0739M0%/sys/fs/cgroup/dev/mapper/openeuler-root 9.8G2.7G6.6G29%/tmpfs 739M4.0K739M1%/tmp/dev/sda1 190M138M38M79%/boot/dev/sda2 200M8.0K200M1%/boot/efi/dev/mapper/openeuler-swap 3.9G16M3.7G1%/swaptmpfs 148M0148M0%/run/user/0top命令iotop命令vmstat命令netstat命令性能監(jiān)控工具toptop命令提供了實時對系統(tǒng)狀態(tài)進行監(jiān)控的功能,也能顯示系統(tǒng)當前的進程和其他狀況。它可以按CPU使用、內(nèi)存使用和執(zhí)行時間等對系統(tǒng)中的進程進行排序。top命令的很多特性都可以通過交互式命令或者在定制文件中進行設定。top命令執(zhí)行結(jié)果的第一行顯示的是概況信息,分別為當前系統(tǒng)時間,開機到現(xiàn)在經(jīng)過的時間,當前登錄到該計算機的用戶數(shù)量,系統(tǒng)1min、5min、15min內(nèi)的平均負載值。第二行是進程計數(shù)信息,分別顯示進程總數(shù)、正在運行的進程數(shù)、睡眠進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論