10.8-ps命令

系統管理員一定要知道你所管理的系統都有哪些進程在運行,在 Windows 下只要打開任務管理器即可查看。那麼在 linux 下如何查看呢?其實使用前面介紹的 top 命令就可以,但是查看起來沒有 ps 命令方便,它是專門顯示系統進程的命令。

用 ps 命令查看系統進程
ps aux 列出系統下所有進程
在這裏插入圖片描述
檢查進程

[root@evan-01 ~]# ps aux | grep nginx
root      1270  0.0  0.0 112708   984 pts/0    R+   11:19   0:00 grep --color=auto nginx
[root@evan-01 ~]# 

ps -elf 和 ps aux 顯示信息基本一樣

[root@evan-01 ~]# ps -elf

在這裏插入圖片描述

PID 表示進程的 ID
表示進程的 ID ,這個 ID 很有用。在 linux 中,內核管理進程就得靠 pid 來識別和管理某一個進程。比如我想終止某一個進程,則用命令“kill 進程的 pid”。有時這樣並不能終止進程,需要加 -9 選項,即“kill -9 進程的 pid”,但這樣太暴力,嚴重的時候會丟失數據,所以儘量還是別用。

STAT 進程的狀態
D:不能中斷的進程(通常爲IO)
R(run):正在運行中的進程,其中包括了等待 CPU 時間片的進程
S(sleep):已經中斷的進程。通常情況下,系統的大部分進程都是這個狀態
T:已經停止或暫停的進程。如果我們正在運行一個命令,比如說 sleep 10,我們按下 ctrl+z 暫停進程時,用 ps 命令查看就會顯示 T這個狀態
W:(內核 2.6xx以後不可用),沒有足夠的內存頁分配
X:已經死掉的進程(這個好像從來不會出現)
Z:殭屍進程,即殺不掉、打不死的垃圾進程,佔用系統一點資源,不過沒有關係。如果佔用太多(一般不會出現),就需要重視了
<:高優先級進程
N:低優先級進程
L:在內存中被鎖了內存分頁
s:主進程,後面講到 nginx 或 php-fpm 服務時候就能更好理解了
l:多線程進程
+:在前臺運行的進程,比如在當前終端執行 ps aux 就是前臺進程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章