1. 程式人生 > >Linux進程控制和計劃任務管理

Linux進程控制和計劃任務管理

crontab 計劃任務 查看進程 控制進程 楊書凡

程序是保存在外部存儲介質(如硬盤)中的可執行機器代碼和數據的靜態集合,而進程是在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服務,2250時關閉

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進程控制和計劃任務管理