Linux 下进程相关的常用命令汇总
引言:在Linux的系統中,進程相關命令是我們掌握 linux 進程必備利器,所以本文就將介紹一些常用的進程相關的命令。
文章目錄
- 進程查看命令
- ps 查看命令
- top 動態查看命令
- jobs 命令
- 進程控制命令
- kill 命令
- killall 命令
- 前后臺進程相關控制命令
進程查看命令
ps 查看命令
ps 命令可以查看進程的詳細狀況,常用選項(選項可以不加“-”)如下:
| -a | 顯示終端上的所有進程,包括其他用戶的進程 |
| -u | 顯示進程的詳細狀態 |
| -x | 顯示沒有控制終端的進程 |
| -w | 顯示加寬,以便顯示更多的信息 |
| -r | 只顯示正在運行的進程 |
ps 常見用法:
-
ps aux:顯示這個操作系統上所有進程的信息,相當于一個拍照,不能動態顯示。
-
ps -ef:效果與 ps aux 差不多, ps aux 最初用到 Unix Style 中,而 ps -ef 被用在 System V Style 中,兩者輸出略有不同。現在的大部分Linux系統都是可以同時使用這兩種方式的。
-
ps ajx:以比較完整的格式顯示所有的進程,會顯示進程的父進程 ID、進程組 ID、會話 ID 等
-
ps a:顯示當前終端下的所有進程,包括其他用戶的進程。
-
查找某個進程:根據進程的名字或者其他信息,結合 grep 命令找到目標進程。
【補充】如上圖所示,STAT 表示進程狀態,具體參數意義如下:
| D | 不可中斷 Uninterruptible(usually IO) |
| R | 正在運行,或在隊列中的進程 |
| S(大寫) | 處于休眠狀態 |
| T | 停止或被追蹤 |
| Z | 僵尸進程 |
| W | 進入內存交換(從內核2.6開始無效) |
| X | 死掉的進程 |
| < | 高優先級 |
| N | 低優先級 |
| s | 包含子進程 |
| + | 位于前臺的進程組 |
top 動態查看命令
top 命令用來動態顯示運行中的進程。top 命令能夠在運行后,在指定的時間間隔更新顯示信息,可以在使用 top命令時加上 -d 來指定顯示信息更新的時間間隔。在top命令執行后,可以按下按鍵得到對顯示的結果進行排序:
| M | 根據內存使用量來排序 |
| P | 根據CPU占有率來排序 |
| T | 根據進程運行時間的長短來排序 |
| U | 可以根據后面輸入的用戶名來篩選進程 |
| K | 可以根據后面輸入的PID來殺死進程。 |
| q | 退出 |
| h | 獲得幫助 |
【備注】top 命令類似于 windows 操作系統上的任務管理器。
jobs 命令
jobs 命令用于查看當前終端的所有后臺進程。該命令可以顯示任務號及其對應的進程號。其中,任務號是以普通用戶的角度進行的,而進程號則是從系統管理員的角度來看的。一個任務可以對應于一個或者多個進程號。常用選項如下:
| -l | 顯示進程號 |
| -p | 僅任務對應的顯示進程號 |
| -n | 顯示任務狀態的變化 |
| -r | 僅輸出運行狀態(running)的任務 |
| -s | 僅輸出停止狀態(stoped)的任務 |
進程控制命令
kill 命令
命令功能: 發送指定的信號到相應進程,常用于用于刪除執行中的程序或工作。使用格式:
kill [-signal] pid
signal 是信號值,pid為進程號
示例:kill 9133 中 9133 為應用程序所對應的進程號,沒有信號值,默認為 SIGTERM。
kill 常見用法:
-
kill -l:查看所有信號的編號
-
kill -SIGKILL/(-9) 進程號: 有些進程不能直接殺死(如后臺進程),這時候我們需要加一個參數“ -9 ”,“ -9 ” 代表強制結束(9號信號為SIGKILL)。
killall 命令
Linux 中每個進程號是唯一的,但是可能存在進程名相同的進程,如下所示:
killall 命令可以根據進程名殺死進程,這樣可以殺死所有進程名相同的進程。
前后臺進程相關控制命令
Linux下,需要經常使用進程的前后臺調度命令,比如一個需要長時間運行的命令,我們就希望把它放入后臺,這樣就不會阻塞當前的操作;而一些服務型的命令進程我們則希望能把它們長期運行于后臺。
-
Ctrl + C 組合鍵:終止并退出前臺命令的執行,回到當前終端;
-
Ctrl + Z 組合鍵:暫停前臺命令的執行,將該進程放入后臺,回到當前終端;
-
& 命令:運行命令時,在命令末尾加上 & 可讓命令在后臺執行。但關閉當前終端導致該后臺進程退出;
-
nohup 命令:不掛斷地運行命令。用來讓進程始終在后臺執行,即使關閉當前的終端也一樣并輸出日志,這點 & 命令做不到;
【補充】在默認情況下(非重定向時),會輸出一個名叫 nohup.out 的文件到當前目錄下,如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。
-
fg N:將任務號為 N 的后臺進程放到前臺執行;
-
bg N:將任務號為 N 的暫停的后臺進程,繼續執行。
示例 1:
yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ jobs -l # 列出后臺進程,無后臺進程 yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ ./server # 運行程序 Accepting connections ... ^Z # 執行 ctrl + z,暫停并轉為后臺 [1]+ Stopped ./server yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ jobs -l # 列出后臺進程,存在后臺進程 [1]+ 20743 Stopped ./server yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ bg 1 # 將暫停的后臺進程恢復運行 [1]+ ./server & yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ fg 1 # 將后臺進程轉為前臺 ./server ^C # 執行 ctrl + c 結束進程 yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$示例 2:
yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ jobs -l # 列出后臺進程,無后臺進程 yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ nohup ./server & # 以非掛起的方式運行程序 [1] 21292 yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ nohup: ignoring input and appending output to 'nohup.out'yxm@192:~/myshare/NetworkIO/BIO/mul_process_server$ jobs -l # 列出后臺進程,無后臺進程 [1]+ 21292 Running nohup ./server &總結
以上是生活随笔為你收集整理的Linux 下进程相关的常用命令汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双模sa_一文看懂华为 Mate 20
- 下一篇: python qrcode 二维码中间贴