程式和計劃任務_______GongWei1997

GongWei1997發表於2020-10-30

程式和程式的關係

程式

儲存再硬碟、光碟等介質中的可執行程式碼和資料
靜態儲存的程式碼

程式

在cpu及記憶體中與執行的程式程式碼
動態執行的程式碼
父、子程式

每個程式可以建立一個或多個程式

檢視程式資訊

ps命令

檢視靜態的程式統計資訊

ps [常用選項]

ps常用選項

a:顯示當前終端下的所有程式資訊
u:顯示以使用者為主的格式顯示程式資訊
x:顯示當前使用者所在所有終端下的程式資訊
-e:顯示系統內的所有程式資訊
-l:使用長格式顯示程式資訊
-f:使用完整格式顯示程式資訊

檢視程式動態資訊

top

查詢程式資訊

pgrep  	-1 “xxx”		//輸出程式名中包含xxx的程式及程式號(pid)
		-U aaa			//輸出由使用者aaa執行的程式及程式號(pid)
		-t	ttyl		//輸出ttyl終端上執行的程式及pid號

檢視程式樹

pstree	a		//完整命令資訊
		u		//列出對應的使用者名稱
		p		//列出其對應的pid號

程式的啟動方式

手動啟動

前臺啟動:使用者輸入命令,直接執行程式
後臺啟動:在命令列尾加入“&”符號

cp /dev/cdrom mycd.iso &
[1] 28454

排程啟動

使用at命令,設定一次性計劃任務
使用crontab命令,設定週期性計劃任務

程式的前後臺排程

Ctrl+Z組合鍵

將當前程式掛起,即調入後臺並停止執行

jobs命令

檢視處於後臺的任務列表

fg命令

將後臺程式恢復到前臺執行,可指定任務序號

[root@localhost ~]# jobs
[1]-	Stopped	cp	/dev/cdrom mycd.iso
[2]+	Stopped	top
[root@localhost ~]# fg	1

終止程式的執行

Ctrl+C組合鍵

中斷正在執行的命令

kill、killall命令

1、kill用於終止指定PID號的程式
2、killall用於終止指定名稱的所有程式
3、-9選項用於強制終止

pkill命令

根據特定條件終止相應的程式
常用命令選項

-U:根據程式所屬的使用者名稱終止相應程式
-t:根據程式所在的中斷終止相應程式

[root@localhost ~]# pgrep -l -U "hackli"
3045 bash
[root@localhost ~]# pkill -9 -U "hachli"
[root@localhost ~]# pgrep -l -U "hachli"

計劃任務管理at

at命令

一次性計劃任務

at[HH:MM][yyyy-mm-dd]
[root@localhost ~]# date
Sun May 7 10:33:13 EDT 2020
[root@localhost ~]# at 10:35 2020-5-7
at>pgrep -U root | wc -l > /tmp/ps.root
at> <EOT>		//按ctrl+D鍵提交任務
job 1 at Sun May 7 10:35:00 2020
[root@localhost ~]# cat /tmp/ps.root
202

案例

在當天的21:30時自動關閉當前系統

[root@localhost ~]# at 21:30
at> shutdown -h now
at> <EOT>
job 2 at Sun May 7 21:30:00 2020

檢視未執行的任務列表

[root@localhost ~]#  atq
2 Sun May 7 21:30:00 2020 a root

刪除第二條任務

atrm 2
atq

計劃任務管理crontab

crontab命令

按照預先設定的使勁按週期(分鐘、小時、天…)重複執行使用者指定的命令操作
屬於週期性計劃命令
主要設定檔案

全域性配置檔案,位於檔案:/etc/crontab
系統預設的設定,位於目錄:/etc/cron.*/
使用者定義的位置,位於檔案:/var/spool/cron/使用者名稱

管理crontab計劃任務

編輯計劃任務

crontab -e [-u 使用者名稱]

檢視計劃任務

crontab -l [-u 使用者名稱]

刪除計劃任務

crontab -r [-u 使用者名稱]

crontab任務配置的格式

50	30	2	1	*	run_command
分鐘	小時	日期	月份	星期	命令
欄位說明
分鐘取值為從0到59之間的任意整數
小時取值為從0到23之間的任意整數
日期取值為從1到31之間的任意整數
月份取值為從1到12之間的任意整數
星期曲志偉從0到7之間的任意整數,0或7代表星期日
命令要執行的命令或程式指令碼

時間數值的特殊表示方法

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

應用示例

0 17 * * 1-5 //週一到週五每天17:00
30 8 * * 1, 3 , 5 //每週一、三、五的8點30分
0 8-18/2 * * * //8點到18點之間每2小時
0 * */3 * * //每3天

相關文章