循序漸進linux-linux系統進程管理
1 進程的概念和分類
1、概念
在自身的虛擬空間運行的一個獨立的程序,從操作系統的角度看,所有在系統上運行的東西都可以稱為一個進程。
進程由程序產生。
程序是一個進程指令的集合,它可以啟用一個或多個進程。
程序只占磁盤空間;進程只占內存空間。
2、分類
按照進程的功能和運行的程序分類,進程分兩大類。
系統進程
可以執行內存資源分配和進程切換等管理工作。不受用戶干預。
用戶進程:
通過執行用戶程序、應用程序和內核之外的系統程序而產生的進程。
分類:交互、批處理、守護
3、進程屬性
狀態:可運行狀態、可中斷的等待狀態、不中斷的等待狀態、僵死狀態、暫停狀態
關系:父進程、子進程
14.2 進程的監控與管理
14.2.1 ps命令
ps -ef |grep httpd
ps auxf |grep httpd
14.2.2 pstree命令
以樹形結果顯示程序和程序之間的關系
pstree [-aunpu] [pid/user]
pstree mysql #mysql用戶啟動了哪些進程
pstree -c -p mysql
pstree -u 26037 #知道PID查詢哪個用戶啟動
pstree -u -p 26037
pstree -a -u -p 26037
14.2.3 top 命令
top
動態實時的顯示進程狀態,同時提供了交互界面。
14.2.4 lsof命令
通過文件找到對應的進程信息
lsof /var/log/messages # message 文件由哪個進程在使用
lsof -c abc #顯示abc進程現在打開的文件
lsof -g 3626 # 顯示指定進程組打開的文件
lsof -P 1 #通過進程號顯示程序打開的所有文件及相關進程
lsof -i
lsof -i tcp:25 # tcp協議對應25端口進程信息
lsof -i :80 # 80端口對應的進程信息
lsof -i
[email protected]:53 #顯示本機udp協議對應的53端口開啟的進程信息
14.3 任務調度進程crond的使用
14.3.1 crond簡介
crond是linux下用來周期性地執行某種任務或等待處理某些事件的一個守護進程,與linux下的計劃任務類似。
linux下的任務調動分為兩類,即系統任務調度和用戶任務調度。
系統任務調度:配置文件 /etc/crontab文件
用戶任務調度:配置文件 /var/spool/cron 目錄中,文件名與用戶名一致
14.3.2 crontab工具的使用
1、crontab使用格式
crontab [-u user] [file]
crontab [-u user] [-e | -l | -r | -i]
2、crontab文件含義
用戶建立的crontab文件中,每行代表一項任務,每行的每個字段代表一項設置。每行6個字段,前五段是時間設定段,第六段是執行的命令段。
minite hour day month week command
3、crontab文件舉例
0 */3 * * * /......... #每隔3小時
*/3 * * * /......... #每隔3小時3
0 */3 * * * /......... #每隔3小時
0 */3 * * * /......... #每隔3小時