linux進程的查看與管理
阿新 • • 發佈:2018-08-21
running 結束 如果 批次 kill 服務 ont 定義 連續 一、進程的查看與管理
1、查看
a、ps 靜態查看
格式:ps [選項]
選項:
a:與終端相關的
x:與終端無關的
u:以用戶為中心
-e:顯示所有進程
-f:顯示完整格式程序信息
-l:顯示完整的列
-H: 以進程層級格式顯示進程相關信息
1、查看
a、ps 靜態查看
格式:ps [選項]
選項:
a:與終端相關的
x:與終端無關的
u:以用戶為中心
-e:顯示所有進程
-f:顯示完整格式程序信息
-l:顯示完整的列
-H: 以進程層級格式顯示進程相關信息
~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND VSZ: Virtual memory SiZe,虛擬內存集 RSS: ReSident Size, 常駐內存集 STAT:進程狀態 R:running S: interruptable sleeping D: uninterruptable sleeping T: stopped Z: zombie +: 前臺進程 l: 多線程進程 N:低優先級進程 <: 高優先級進程 s: session leader b、top 動態查看 有許多內置命令: 排序: P:以占據的CPU百分比; M:占據內存百分比; T:累積占據CPU時長; 首部信息顯示: uptime信息:l命令 tasks及cpu信息:t命令 cpu分別顯示:1 (數字) memory信息:m命令 退出命令:q 修改刷新時間間隔:s 終止指定進程:k 選項: -d #: 指定刷新時間間隔,默認為3秒; -b: 以批次方式; -n #: 顯示多少批次; c、pstree 查看進程樹 格式:pstree [選項] 選項: -a:顯示完整信息 -u:顯示用戶名 -p:顯示進程id號 d、pgrep 根據指定信息查看進程 格式:pgrep 指定信息 例如:pgrep -l -U 用戶名 -t 終端 -l:顯示進程名稱 -U:指定用戶 -t:指定終端 2、進程的啟動 a、手動啟動 前臺啟動:直接在終端運行程序即可 後臺啟動:將原本在前臺執行的程序調到後臺運行 在運行程序後加上& 前後臺調度的操作: ctrl+z:將正在運行的進程調入後臺並停止執行 jobs:查看後臺進程列表 fg [進行列表序號]:將後臺停止的進程恢復前臺運行 b、調度啟動 一次性計劃任務:at 周期性計劃任務:crontab 3、結束進程 ctrl+c kill PID號 kill -9 PID號 //慎用 killall 進程名稱 killall -9 進程名稱 //慎用 pkill -U 用戶名 -t 終端 //結束指定用戶在指定終端上的進程 pkill -9 -U 用戶名 -t 終端 //慎用
二、計劃任務
1、一次性 at
確保:atd服務正在運行
格式:at [HH:MM] [YYYY-mm-DD] //按ctrl+d提交
例如:#at 21:30
at>shutdown -h now
atq //查看尚未執行的任務列表
atrm n //刪除指定尚未執行的任務
2、周期性
周期性任務計劃:cron
相關的程序包:
cronie: 主程序包,提供了crond守護進程及相關輔助工具;
cronie-anacron:cronie的補充程序;用於監控cronie任務執行狀況;如cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨後啟動一次此任務;
crontabs:包含CentOS提供系統維護任務;
確保crond守護處於運行狀態: CentOS 7: systemctl status crond ...running... CentOS 6: service crond status 計劃要周期性執行的任務提交給crond,由其來實現到點運行。 系統cron任務:系統維護作業 /etc/crontab 用戶cron任務: crontab命令 系統cron任務 # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 例如:晚上9點10分運行echo命令; 10 21 * * * gentoo /bin/echo "Howdy!" 時間表示法: (1) 特定值; 給定時間點有效取值範圍內的值; (2) * 給定時間點上有效取值範圍內的所有值; 表示“每...”; (3) 離散取值:, #,#,# (4) 連續取值:- #-# (5) 在指定時間範圍上,定義步長: /#: #即為步長 例如:每3小時echo命令; 0 */3 * * * gentoo /bin/echo "howdy!" 用戶cron: crontab命令定義,每個用戶都有專用的cron任務文件:/var/spool/cron/USERNAME crontab命令: crontab [-u user] [-l | -r | -e] [-i] -l: 列出所有任務; -e: 編輯任務; -r: 移除所有任務; -i:同-r一同使用,以交互式模式讓用戶有選擇地移除指定任務; -u user: 僅root可運行,代為為指定用戶管理cron任務; 註意:運行結果以郵件通知給相關用戶; (1) COMMAND > /dev/null (2) COMMAND &> /dev/null 對於cron任務來講,%有特殊用途;如果在命令中要使用%,則需要轉義;不過,如果把%放置於單引號中,也可以不用轉義;
linux進程的查看與管理