# Linux下怎么查看進程
## 引言
在Linux系統中,進程是程序執行的實例。了解如何查看和管理進程是系統管理員和開發人員必備的技能。本文將詳細介紹Linux下查看進程的各種方法,包括常用命令、工具以及它們的實際應用場景。
---
## 1. 基礎命令
### 1.1 `ps` 命令
`ps`(Process Status)是最基礎的進程查看命令,用于顯示當前用戶的進程信息。
#### 常用選項:
- `ps -ef`:顯示所有進程的完整信息(包括PID、PPID、啟動時間等)。
- `ps aux`:以BSD風格顯示所有進程(包含CPU、內存占用等)。
- `ps -u [用戶名]`:查看特定用戶的進程。
#### 示例:
```bash
ps aux | grep nginx # 查找nginx相關進程
USER
:進程所有者。PID
:進程ID。%CPU
:CPU占用率。%MEM
:內存占用率。COMMAND
:啟動命令。top
命令top
是一個動態交互式進程監控工具,實時顯示系統資源占用情況。
M
按內存排序,按 P
按CPU排序)。top -u mysql # 監控mysql用戶的進程
load average
:系統1/5/15分鐘的平均負載。Tasks
:總進程數及狀態分布(運行、休眠等)。KiB Mem
:內存使用情況。htop
命令htop
是 top
的增強版,提供彩色界面和鼠標操作支持。
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
pgrep
和 pkill
pgrep
:根據名稱查找進程ID。
pgrep -l nginx # 查找nginx進程并顯示名稱
pkill
:通過名稱終止進程。
pkill -9 nginx # 強制終止nginx進程
pidof
直接獲取進程的PID:
pidof sshd # 顯示sshd服務的PID
systemctl
(Systemd系統)對于使用Systemd的Linux發行版(如Ubuntu 16.04+、CentOS 7+):
systemctl status nginx # 查看nginx服務狀態
systemctl list-units --type=service # 列出所有服務
/proc
文件系統Linux將進程信息存儲在 /proc/[PID]/
目錄下,例如:
cat /proc/1234/status # 查看PID為1234的進程狀態
ls /proc/1234/fd # 查看該進程打開的文件描述符
lsof
列出進程打開的文件:
lsof -p 1234 # 查看PID 1234打開的文件
lsof -i :80 # 查看占用80端口的進程
適用于桌面環境,提供直觀的CPU、內存、磁盤占用圖表。
glances
跨平臺的監控工具,支持Web界面:
pip install glances
glances # 啟動后訪問 http://localhost:61208
top
或 htop
定位高占用進程。strace -p [PID]
跟蹤進程系統調用。ps -A -ostat,ppid | grep -e '[Zz]' # 查找僵尸進程
kill -9 [PPID] # 終止父進程
systemctl restart apache2 # 重啟Apache服務
命令/工具 | 適用場景 | 特點 |
---|---|---|
ps |
快速查看進程快照 | 輕量級,支持多種輸出格式 |
top/htop |
實時監控資源占用 | 動態更新,交互操作 |
pgrep/pkill |
快速查找/終止進程 | 基于名稱操作 |
/proc |
查看進程詳細信息 | 訪問內核數據 |
掌握這些工具后,你可以高效地完成以下任務: - 監控系統資源使用情況。 - 診斷性能瓶頸。 - 管理后臺服務進程。
man ps
/ man top
查看完整手冊提示:在生產環境中操作進程時,建議先確認影響范圍,避免誤殺關鍵服務。 “`
注:實際字數約1400字,可根據需要增減示例或調整章節深度。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。