標籤:電腦程式 linux 進程
程式是儲存在外部存放裝置(如硬碟)中的可執行機器代碼和資料的集合。而進程是在CPU及記憶體中處於動態執行狀態的電腦程式。每個程式啟動後會產生一個或多個進程,如httpd程式,當有大量使用者訪問Web頁面時,httpd程式會產生多個進程來提供服務。
一 查看進程
1 ps:查看靜態進程資訊
選項:a 顯示當前終端下所有的進程資訊
u 使用以使用者為主的格式輸出進程資訊
x 顯示目前使用者在所有終端下的進程資訊
-e 顯示系統內所有進程資訊
-l 使用長格式顯示進程資訊
-f 使用完整的格式顯示進程資訊
[[email protected] ~]# ps #只顯示目前使用者會話中開啟的進程
PID TTY TIME CMD
2838 pts/0 00:00:00 bash
5252 pts/0 00:00:00 ps
[[email protected] ~]# ps aux #以列表的形式顯示出進程資訊
[[email protected] ~]# ps -elf #使用長格式顯示進程的詳細資料
[[email protected] ~]# ps aux | grep mysqld #查看mysqld進程資訊
2 top:查看進程動態資訊
[[email protected] ~]# top
3 pgrep:查詢特定進程資訊
選項:-l 長格式輸出,查詢所有匹配進程的名稱和進程ID
-U 查詢特定使用者的進程
[[email protected] ~]# pgrep -l "my" #查詢名稱中包含"my"的進程資訊
5531 mysqld_safe
5633 mysqld
[[email protected] ~]# pgrep -l -U root #查詢root使用者的進程名稱和ID號
4 pstree:查看進程樹
選項:-a 列出完整的命令資訊
-u 顯示對應的使用者名稱
-p 顯示進程ID號
[[email protected] ~]# pstree #顯示進程樹
[[email protected] ~]# pstree -aup #顯示進程樹詳細資料,包括PID,使用者、命令
[[email protected] ~]# pstree -aup mysql #指定使用者,列出由使用者mysql開啟的進程結構
mysqld,5633 --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
├─{mysqld},5635
├─{mysqld},5636
├─{mysqld},5637
├─{mysqld},5638
├─{mysqld},5645
├─{mysqld},5646
├─{mysqld},5647
├─{mysqld},5648
└─{mysqld},5649
二 管理進程
1 &:後台啟動進程
[[email protected] ~]# cp -R /etc/ ./ & #進程後台啟動
[[email protected] ~]# jobs -l #查看後台啟動並執行進程,-l顯示PID號
2 終止進程
ctrl+c:中斷進程,向進程發出SIGINT訊號
使用命令中止進程:
kill:使用kill終止進程時需要PID號作為參數
[[email protected] ~]# kill 5633 #終止PID為5633的進程
[[email protected] ~]# kill -9 7582 #-9意味著強行終止,慎用
[[email protected] ~]# kill -s QUIT 7849 #向進程發送QUIT訊號,從容停止
killall:可以通過進程名來終止進程
[[email protected] ~]# killall master #終止進程,後面是進程名稱
[[email protected] ~]# killall -9 master #-9:強行終止
[[email protected] ~]# killall -s QUIT mysqld #從容停止某項服務
pkill:可以根據進程的名稱、運行該進程的使用者等屬性終止該進程
[[email protected] ~]# pkill mysqld #終止進程
[[email protected] ~]# pkill -U "zwj" #終止使用者zwj啟動的進程,-9強制終止
本文出自 “一萬年太久,只爭朝夕” 部落格,請務必保留此出處http://zengwj1949.blog.51cto.com/10747365/1917070
Linux之進程管理