Linux進程控制和計劃任務管理
程序是保存在外部存儲介質(如硬盤)中的可執行機器代碼和數據的靜態集合,而進程是在CPU及內存中處於動態執行狀態的計算機程序。在Linux中,每個程序啟動後可以創建一個或多個進程。
ps命令 查看靜態的進程統計信息
ps 只顯示當前用戶會話中打開的進程
ps aux 以簡單列表的形式顯示出進程信息
ps -elf 以長格式顯示系統中的進程信息,包括更豐富的內容
top命令 查看進程動態信息
在當前終端已交互式的界面顯示進程排名,及時跟蹤CPU、內存等系統資源占用的情況,默認每三秒刷新一次
P鍵:根據CPU占用情況對進程進行排序
M鍵:根據內存占用情況對進程進行排序
N鍵:根據啟動時間進行排序
h鍵:獲得top程序的在線幫助信息
q鍵:退出top程序
k鍵:輸入指定進程PID號,按下Enter鍵,終止對應的進程
pgrep命令 查詢指定進程信息
-l 同時顯示PID和對應的進程名
-U 查詢特定用戶的進程
-t 查詢在特定終端運行的進程(如tty1)
pstree命令 查看進程樹形結構,各進程對應的關系
-aup 查看當前進程樹,並包括進程對應的PID號、用戶名、完整命令信息
-ap 用戶名參數 只查看指定用戶的進程樹結構
控制進程
命令+& 在後臺運行命令,不占用前臺的命令操作界面
Ctrl+Z 將當前進程掛起,調入後臺並停止執行
jobs 查看後臺運行的進程任務
-l 同時顯示該進程對應的PID號
bg+PID號 將後臺暫停執行的任務恢復運行,繼續在後臺運行
fg+PID號 將後臺暫停執行的任務恢復到前臺運行
終止進程執行
Ctrl+C 強制中斷正在前臺執行的某個進程
kill+PID號 終止進程並正常退出
-9 強制終止某個進程
killall+進程名 終止系統中多個相同名稱的進程,更加方便、效率
-9 強行終止
pkill命令 可以根據進程的名稱、用戶、終端等屬性終止特定的進程
-U 終止特定用戶的進程
-t 終止在特定終端運行的進程(如tty1)
計劃任務管理
在Linux操作系統中,還可以配置在指定時間,指定日期執行預先計劃好的系統管理任務(如定期備份、定期采集監測數據)
at 一次性任務設置
配置文件 /etc/init.d/atd
命令格式: at 時間 日期
例如:在2017年8月15日的20:00是自動關閉系統
# at 20:00 2017-8-15
at> shutdown -h now
at> 設置完後按 Ctrl+D 提交任務
atq命令 查詢已設置但還未執行的計劃任務
atrm命令 刪除指定編號的 at 任務,刪除後將不會執行
crontab 周期性任務設置
配置文件 /etc/crontab
用戶 cron 任務配置文件存放目錄 /var/spool/cron
命令格式: crontab -e 編輯計劃任務列表
-u 指定管理的計劃任務屬於哪個用戶,默認自己
-l 列表顯示任務計劃
-r 刪除計劃任務列表
1.編輯計劃任務列表
執行crontab -e 後,打開計劃任務編輯界面
編輯格式: 分鐘 小時 日期 月份 星期 執行的命令
* 表示取值範圍中的任意時間
- 表示一個連續的時間範圍,如“1-3”表示1、2、3
,表示一個間隔的不連續範圍,如“1,5”表示1,5
/ 表示指定的間隔頻率,如在小時字段中的“*/12”表示每個12小時
例如:按照固定的周期重復執行以下系統管理任務,任務內容如下
1.每天早上7:50自動開啟sshd服務,22點50時關閉
2.每隔5天清空一次FTP服務器公共目錄/var/ftp/pub
3.每周六的7:30時,重新啟動httpd服務
4.每周一、三、五的17:30時,打包備份/etc/httpd目錄
# crontab -e
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
0 0 */5 * * /bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /sbin/service httpd restart
30 17 * * 1,3,5 /bin/tar zcf httpd.tar.gz /etc/httpd/
2.查看任務列表
crontab -l 查看當前用戶的計劃任務列表
-u 查看其它用戶的計劃任務
例如:查看用戶 ysf 的計劃任務
# crontab -l -u ysf
3.刪除用戶的計劃任務列表
當只需刪除某一條計劃任務時,可通過 crontab -e 進行編輯;需要清空某個用戶的所有計劃任務時,可以執行 crontab -r 命令
例如:查看用戶 ysf 的計劃任務
# crontab -r -u ysf
本文出自 “楊書凡” 博客,請務必保留此出處http://yangshufan.blog.51cto.com/13004230/1950081
Linux進程控制和計劃任務管理