程序和進程的關係
程序
保存在硬盤、光盤等介質中的可執行代碼和數據
是靜態保存的代碼
進程
在CPU及內存中運行的程序代碼
是動態執行的代碼
父、子進程:每個進程可以創建一個或多個進程
查看進程信息命令
ps命令
用途:查看靜態的進程統計信息
格式:
ps aux
ps -elf
top命令
用途:查看動態的進程排名信息
top工具的命令按鍵:
按P鍵根據CPU佔用情況對進程列表進行排序
按M鍵根據內存佔用情況進行排序
按N鍵根據啓動時間進行排序
按h鍵可以獲得top程序的在線幫助信息
按q鍵可以正常退出top程序
使用空格鍵可以強制更新進程狀態顯示
pgrep命令
用途:根據特定條件查詢進程PID信息
常用命令選項:
-l:顯示進程名
-U:指定特定用戶
-t:指定終端
pstree命令
用途:以樹狀圖顯示程序
常用命令選項:
-a:顯示完整信息
-u:列出對應用戶名
-p:列出對應PID號
進程的啓動方式
手工啓動
前臺啓動:用戶輸入命令,直接執行程序
後臺啓動:在命令行尾加入“&”符號
調度啓動
使用at命令,設置一次性計劃任務
使用crontab命令,設置週期性計劃任務
進程的前後臺調度
Ctrl+Z 組合鍵
將當前進程掛起,即調入後臺並停止執行
jobs命令
查看處於後臺的任務列表
fg命令
將處於後臺的進程恢復到前臺運行,需指定任務序號
終止進程的運行
Ctrl+C組合鍵
中斷正在執行的命令
kill、killall命令
kill用於終止指定PID號的進程
killall用於終止指定名稱的所有進程
-9 選項用於強制終止
pkill命令
用途:根據特定條件終止相應的進程
常用命令選項:
-U:根據進程所屬的用戶名終止相應進程
-t:根據進程所在的終端終止相應進程
計劃任務管理
at命令
一次性計劃任務
服務腳本名稱:/etc/init.d/atd
設置格式:at [HH:MM] [yyyy-mm-dd]
at應用示例:
把當前以root用戶身份運行的進程數量輸出到/tmp/ps.root文件中
crontab命令
按照預先設置的時間週期(分鐘、小時、天……)重複執行用戶指定的命令操作,屬於週期性計劃任務
服務腳本名稱:/etc/init.d/crond
主要設置文件
全局配置文件,位於文件:/etc/crontab
系統默認的設置,位於目錄:/etc/cron.*/
用戶定義的設置,位於文件:/var/spool/cron/用戶名
管理cron計劃任務
編輯計劃任務:crontab -e [-u 用戶名]
查看計劃任務:crontab -l [-u 用戶名]
刪除計劃任務:crontab -r [-u 用戶名]
crontab任務配置的格式
5 4 3 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天
crontab應用示例(root用戶):
每天早上7:50自動開啓sshd服務,22點50時關閉
每隔5天清空一次FTP服務器公共目錄/var/ftp/pub
每週六的7:30時,重新啓動httpd服務
每週一、三、五的17:30時,打包備份/etc/httpd目錄