linux进程和计划任务,linux进程和计划任务
內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、 安全功能等
進程管理:
系統優先級:數字越小,優先級越高
實時優先級: 99-0,值最大優先級最高
nice值:-20 到19 ,對應系統優先級100-139或99
Linux 內核:搶占式多任務
進程類型:
守護進程: daemon, 在系統引導過程中啟動的進程,和終端無關進程
前臺進程:跟終端相關,通過終端啟動的進程
注意:兩者可相互轉化
進程狀態:
運行態:running
就緒態:ready
睡眠態:
可中斷:interruptable
不可中斷:uninterruptable
停止態:stopped, 暫停于內存,但不會被調度,除非手動啟動
僵死態:zombie,結束進程,父進程結束前,子進程不關閉
進程和線程的區別:
一個進程可以有多個線程,一個CPU只能運行一個進程,
線程可以共享資源,包括網絡資源,內存資源
進程管理工具:
pstree ?-p ?: ?查看進程樹 ? ?-p ? 查看pid
ps ? ? ? ? ???: ?查看終端信息
默認顯示當前終端中的進程
? a 選項包括所有終端中的進程
? x 選項包括不鏈接終端的進程
? u 選項顯示進程所有者的信息
? f 選項顯示進程的父進程
? o 屬性… ?選項顯示定制的信息
pid 、comm 、%cpu 、%mem 、state 、tty 、euser 、ruser
pidof ?command ? ? ?: 查看運行命令的pid
stat:進程狀態
R ? ? ? ? ? ?S ? ? ? ? D ? ? ? ? ? T ? ? ? ? ?Z ? ? ? ? ?L ? ? ? N ? ? <
可中斷休眠 ? 停止 ? ? ? ? ? ? 僵尸進程 ? ?多線程 ? ? ? ? 高優先級
常用組合:-ef
-e: ?顯示所有進程
-f: ?顯示完整格式程序信息
常用組合:-eFH
-F: ?顯示更完整格式的進程信息
-H: ?以進程層級格式顯示進程相關信息
nice命令:
nice 10 pid
renice -n 10 pid ? ? ?調整進程優先級
uptime : ?顯示當前時間,和系統平均負載
top命令:
-d # ? :指定刷新時間間隔,默認為3秒
-b ? ? :以批次方式 (就是一次顯示一個頁面)
-n # ? :顯示多少批次(比如顯示3次頁面就退出的意思)
排序:
P :以占據的CPU 百分比,%CPU
M :占據內存百分比,%MEM
T :累積占據CPU 時長,TIME+
首部信息顯示:
uptime 信息: ? ? ?l 命令
tasks 及cpu 信息: t 命令
cpu 分別顯示: ? ? 1 ( 數字)
memory 信息: ? ? ?m 命令
退出命令: ? ? ? ? q
修改刷新時間間隔: s
終止指定進程: ? ? k
保存文件: ? ? ? ? W
top欄位信息簡介;進程查看對比就方便記住了
htop 命令:需從Fedora-EPEL 源安裝 yum -y install htop
vmstat: 虛擬內存信息
vmstat 2 5 ? : ?每2秒顯示一次,顯示五次結束
iostat: 統計CPU 和設備IO 信息
iostat 2 ?5 :
系統監測工具:
glance:
服務器模式:
glances -s -B IPADDR
IPADDR:?指明監聽的本機哪個地址
客戶端模式:
glances -c IPADDR
IPADDR:?要連入的服務器端地址
dstat:, 代替vmstat,iostat;功能很強大
-c: ?顯示cpu 相關信息
-d: ?顯示disk 相關信息
-g :顯示page 相關統計數據
-m: ?顯示memory 相關統計數據
-n: ?顯示network 相關統計數據
-p: ?顯示process 相關統計數據
-r: ?顯示io 請求相關的統計數據
-s: ?顯示swapped相關的統計數據
kill 命令:
向進程發送控制信號;以實現對進程管理,每個信號對應一個數字,信號名稱以SIG開頭(可省略)不區分大小寫
顯示當前系統可用信號: kill –l,trap -l
常用信號:man 7 signal
1) SIGHUP: ?無須關閉進程而讓其重讀配置文件
2) SIGINT: ?中止正在運行的進程;相當于Ctrl+c
3) SIGQUIT: 相當于ctrl+\
9) SIGKILL: ?強制殺死正在運行的進程
15) SIGTERM :終止正在運行的進程
18) SIGCONT :繼續運行
19) SIGSTOP :后臺休眠
指定信號的方法:
(1) ?信號的數字標識:1, 2, 9
(2) ?信號的簡寫名稱:HUP
例如:kill -9 PID ? ? ? ?kill -1 ?pid
作業管理:
Linux 的作業控制
前臺作業:通過終端啟動,且啟動后一直占據終端;
后臺作業:可通過終端啟動,但啟動后即轉入后臺運行(釋放終端)
? ?如何讓作業運行于后臺?
(1) ?運行中的作業: Ctrl+z ? ? (此操作會使進程休眠)
(2) ?尚未啟動的作業:# COMMAND & ?(此操作后臺運行)
? ?后臺作業雖然被送往后臺運行,但其依然與終端相關;退出終端,將關閉
后臺作業。如果希望送往后臺后,剝離與終端的關系
# nohup COMMAND & #screen;COMMAND
? ?查看所有作業:
# jobs
? ?作業控制: ?后臺作業都會有一個編號,直接指定編號也行
# fg [[%]JOB_NUM] :把指定的后臺作業調回前臺
# bg [[%]JOB_NUM] :讓送往后臺的作業在后臺繼續運行
# kill [%JOB_NUM] :終止指定的作業
并行運行:
方法1 ? ? ?(寫三個腳本,放到一個腳本運行,每個腳本后用&)
vi all.sh
f1.sh&
f2.sh&
f3.sh&
? ? ?方法2
(f1.sh&);(f2.sh&);(f3.sh&)
? ? ?方法3
{ f1.sh& f2.sh& f3.sh& }
任務計劃:
Linux 任務計劃、周期性任務執行
? ?未來的某時間點執行一次任務
at
batch :系統 自行選擇空閑時間去執行此處指定的任務
? ?周期性運行某任務
cron
at: 依賴軟件包,考試時候類似的包都會挖坑,需要手動啟動服務,否則做完不生效
rpm -q at ? ?:查詢軟件包名稱
rpm -ql at ? : 查詢安裝包路徑
service atd status ? :查看當前服務是否啟動 ? ?start和stop,臨時啟動
chkconfig ?–list atd :查看是否開機啟動的
chkconfif –level 5 atd on/off ? :在模式5設置開機啟動或者關閉 –help 查看幫助
centos7 :
systemctl ? is-enabled atd ?:查看atd下次啟動是否自動啟動
systenctl ? enabled ? atd ? : ?下次啟動自動啟動
systenctl ? disable ? atd ? : ?下次啟動不自動啟動
at time ? :命令格式,后面跟時間,ctrl+d ?結束
at -l ?: ?查看計劃任務
at -d ?#: 刪除指定的計劃任務編號
at -c #: ?查看任務計劃內容, 目錄在 /var/spool/at/
at -f *.text ?time: ? 把多個任務計劃寫到文件調用
at -m ?: 當任務 被完成之后,將給用戶發送郵件,即使沒有標準輸出
計劃任務結果以郵件形式發送,建議使用重定向解決 >/dev/null
同時間的計劃任務支持并行運行。
at.deny 和at.allow ? ? ? /et/at.deny ? ? 默認/etc/at.allow 不存在
at.deny 黑名單,要生效的前提,at.allow不存在,白名單的優先級最高
at.allow 白名單,只有白名單的用戶才可能執行at,默認不存在,如果存在,at.deny失效,優先級高
如果都不存在,只有root可以執行at
如果 兩個文件都不存在有 ,只有 root 行 可以執行 at ?命令
周期性任務計劃:
cron : ?和at一樣,需要先查詢清楚路徑和是否啟動服務,或者開機啟動
rpm -qa cron* : ?可以用通配符搜索;
確保crond 守護處于運行狀態:
CentOS 7:
systemctl status crond
CentOS 6:
service crond status
? ?計劃周期性執行的任務提交給crond ,到指定時間會自動運行
系統cron 任務:系統維護作業
/etc/crontab
用戶cron 任務:
crontab 命令
? ? ? ? ? 日志:/var/log/cron
周期性計劃對符號敏感,比如%,所以建議調用腳本,否則需要加單引號;
vim /etc/crontab
時間表示法:
? (1) ?特定值
給定時間點有效取值范圍內的值
? (2) ?*
給定時間點上有效取值范圍內的所有值
表示 “每…”
? (3) ?離散取值
#,#,#
? (4) ?連續取值
#-#
? (5) ?在指定時間范圍上, 定義步長
/#: #即為步長
? ?示例:每3小時echo 命令
0 */3 * * * centos /bin/echo “howdy!”
一般來說,幾月幾號和周幾一般不同時出現,如果都出現,表示或者的關系,都會執行
@reboot ?Run once after reboot ? ? ?:表示下次開機運行
? @yearly 0 0 1 1 *
? @annually 0 0 1 1 *
? @monthly 0 0 1 * *
? @weekly 0 0 * * 0
? @daily 0 0 * * *
? @hourly 0 * * * *
系統的計劃任務:
/etc/crontab
/etc/cron.d/ 配置文件
/etc/cron.hourly/ ?腳本
/etc/cron.daily/ ? 腳本
/etc/cron.weekly/ ?腳本
/etc/cron.monthly/ 腳本
原創文章,作者:shewei,如若轉載,請注明出處:http://www.178linux.com/71581
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的linux进程和计划任务,linux进程和计划任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试字节跳动,我被怼了....
- 下一篇: linux c 获取时间戳 打印时间戳