| 命令 | 主要用途 | 查看 Tomcat 典型用法 | 優點 |
|---|---|---|---|
| netstat | 網絡連接/監聽端口/路由表 | netstat -ntlp | grep 8080 (查監聽 8080 端口的進程 PID/名稱) | 經典、廣泛預裝、顯示網絡狀態 |
| ss | 現代替代 netstat,更快、信息更豐富 | ss -ntlp | grep 8080 | 性能更好、支持過濾表達式、內核直接讀取 |
| lsof | 列出打開文件/端口/設備 | lsof -i :8080 (查佔用 8080 端口的進程詳情) | 功能最強、顯示進程用戶、命令、FD 類型 |
| pgrep | 按名稱/模式查進程 PID | pgrep -f tomcat 或 pgrep -f java.*catalina | 輕量、輸出純 PID、腳本友好 |
| pidof | 查指定程序名的 PID | pidof java (需知確切進程名) | 極簡、快 |
| top / htop | 動態進程監控 (CPU/內存/時間) | top -p $(pgrep -f tomcat) 監控指定 Tomcat 進程 | 實時資源佔用、交互式管理 |
| /proc 文件系統 | 內核暴露進程信息 | ls /proc/$(pgrep -f tomcat)/fd 查文件描述符 | 最底層、無依賴、可編程讀取 |
| systemctl / service | 系統服務管理 | systemctl status tomcat (若 Tomcat 注冊為服務) | 標準服務狀態、日誌、啟停控制 |
# 1. 確認 Tomcat 進程是否存在
pgrep -f "catalina" # 或 pgrep -f "tomcat"
# 輸出 PID,如 12345
# 2. 確認端口監聽
ss -ntlp | grep 8080
# 或 netstat -ntlp | grep 8080
# 輸出: LISTEN 0 100 *:8080 *:* users:(("java",pid=12345,fd=...))
# 3. 查看進程資源佔用
top -p 12345
# 或 htop -p 12345 (更友好)
# 4. 查看進程打開的文件/連接
lsof -p 12345
# 重點看 TCP 連接、JAR 文件、日志文件句柄
# 5. 若 Tomcat 註冊為 systemd 服務
systemctl status tomcat
journalctl -u tomcat -f # 實時日誌
除 ps 外,查看 Tomcat 進程最實用組合:
pgrep -f catalina (拿 PID) → ss -ntlp | grep 8080 (驗證端口) → top -p PID / htop -p PID (看資源) → lsof -p PID (看文件/連接)。
若註冊為服務,**systemctl status tomcat 一條龍搞定**。