在Linux系統(tǒng)中檢查服務(wù)是否運行的三種主要方法
本文介紹了在Linux系統(tǒng)中檢查服務(wù)是否運行的三種主要方法:
- 推薦使用systemctl status命令(適用于現(xiàn)代Linux系統(tǒng)),可查看單個服務(wù)狀態(tài)或列出所有運行/失敗的服務(wù),重點關(guān)注Active行狀態(tài)。
- 通用方法ps -ef | grep 服務(wù)名(適用于所有Linux系統(tǒng)),通過檢查進程列表判斷服務(wù)是否運行,建議配合grep -v grep過濾自身進程。
- 使用netstat/ss檢查端口監(jiān)聽情況,確認服務(wù)是否在監(jiān)聽指定端口。
文章還通過實際案例演示了如何檢查大數(shù)據(jù)組件和MySQL服務(wù)的運行狀態(tài),并提供了快速對比表幫助選擇合適的方法。
最后指出,當(dāng)ps -ef輸出中只有g(shù)rep進程時,說明目標(biāo)服務(wù)未運行,建議檢查安裝情況或嘗試啟動服務(wù)。
在 Linux 中查看服務(wù)是否啟動
有 3 種主流方法,按推薦順序排列:
方法一:systemctl status(最推薦,現(xiàn)代 Linux 通用)
# 查看單個服務(wù)狀態(tài) systemctl status sshd systemctl status mysql systemctl status httpd # 輸出關(guān)鍵信息 # ● sshd.service - OpenSSH server daemon # Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) # Active: active (running) ... ← 看到 active (running) 表示正在運行
重點關(guān)注 Active 行:
| 狀態(tài) | 含義 |
|---|---|
active (running) | ? 正在運行 |
inactive (dead) | ? 未運行 |
failed | ? 啟動失敗 |
# 查看所有正在運行的服務(wù) systemctl list-units --type=service --state=running # 查看所有失敗的服務(wù)(排查問題常用) systemctl list-units --type=service --state=failed
方法二:ps -ef | grep 服務(wù)名(最通用,任何 Linux 都支持)
ps -ef | grep mysql
輸出示例:
mysql 1234 1 0 10:00 ? 00:00:01 /usr/sbin/mysqld hadoop 5678 1234 0 10:05 pts/0 00:00:00 grep --color=auto mysql
判斷方法:
- 看到
/usr/sbin/mysqld這樣的進程 → ? 服務(wù)已啟動 - 只有
grep那一行 → ? 服務(wù)未啟動
優(yōu)化寫法(去掉 grep 自身那一行):
ps -ef | grep mysql | grep -v grep
方法三:netstat/ss查端口(驗證服務(wù)是否在監(jiān)聽)
# 查看指定端口是否被監(jiān)聽 netstat -tlnp | grep 3306 # 或 ss -tlnp | grep 3306
輸出示例:
LISTEN 0 128 0.0.0.0:3306 0.0.0.0:* users:(("mysqld",pid=1234,fd=14))看到 LISTEN 說明服務(wù)在監(jiān)聽該端口 → ? 服務(wù)已啟動
常用端口速查:
| 服務(wù) | 默認端口 |
|---|---|
| SSH | 22 |
| MySQL | 3306 |
| Oracle | 1521 |
| Tomcat | 8080 |
| HDFS NameNode Web UI | 9870 |
| YARN ResourceManager | 8088 |
快速對比表
| 方法 | 命令 | 優(yōu)點 | 適用場景 |
|---|---|---|---|
| systemctl | systemctl status 服務(wù)名 | 信息最全、最規(guī)范 | 首選,systemd 系統(tǒng) |
| ps | ps -ef | grep 服務(wù)名 | 通用、任何 Linux 都能用 | 老舊系統(tǒng)、快速確認 |
| netstat/ss | ss -tlnp | grep 端口 | 確認端口是否監(jiān)聽 | 排查端口占用、服務(wù)假死 |
實戰(zhàn)示例:檢查大數(shù)據(jù)組件是否啟動
# 檢查 HDFS NameNode systemctl status hadoop-hdfs-namenode # 或 ps -ef | grep NameNode | grep -v grep # 檢查 YARN ResourceManager systemctl status hadoop-yarn-resourcemanager # 或 ps -ef | grep ResourceManager | grep -v grep # 檢查 MySQL systemctl status mysqld # 或 ps -ef | grep mysqld | grep -v grep # 或 ss -tlnp | grep 3306
總結(jié)一句話
優(yōu)先用 systemctl status 服務(wù)名
沒有 systemctl 的老系統(tǒng)用 ps -ef | grep 服務(wù)名
再配合 ss -tlnp | grep 端口 確認端口監(jiān)聽
mumu@MuJinqiu:~/bigdata/2026/test$ ps -ef | grep mysql mumu 487546 270201 0 14:02 pts/3 00:00:00 grep --color=auto mysql mumu@MuJinqiu:~/bigdata/2026/test$
從這個輸出可以判斷:當(dāng)前系統(tǒng)中沒有運行的 MySQL 進程。
一、輸出解讀
mumu 487546 270201 0 14:02 pts/3 00:00:00 grep --color=auto mysql
| 列 | 值 | 含義 |
|---|---|---|
| 用戶名 | mumu | 進程屬于 mumu 用戶 |
| PID | 487546 | 進程 ID |
| 命令 | grep --color=auto mysql | 這是你剛敲的 grep 命令本身 |
關(guān)鍵點:只有 grep 自己的進程,沒有 mysqld 或其他 MySQL 相關(guān)進程。
結(jié)論:MySQL 沒有運行
二、為什么會出現(xiàn)這種情況?
| 可能性 | 說明 |
|---|---|
| MySQL 未安裝 | 根本沒裝 MySQL |
| MySQL 已安裝但未啟動 | 裝了一直沒啟動 |
| MySQL 已安裝且之前啟動了,但掛了 | 運行過但崩潰或被 kill 了 |
| 當(dāng)前用戶權(quán)限不足 | ps -ef 能看到所有進程,跟權(quán)限無關(guān) |
三、下一步排查建議
1. 檢查 MySQL 是否安裝
# 檢查是否安裝了 mysql 包 dpkg -l | grep mysql # Ubuntu/Debian rpm -qa | grep mysql # CentOS/RHEL # 或者找 mysql 相關(guān)文件 which mysql ls /usr/sbin/mysqld
2. 嘗試啟動 MySQL(如果已安裝)
# 方式1:systemctl(現(xiàn)代 Linux) sudo systemctl start mysql # 或 sudo systemctl start mysqld # 方式2:直接啟動(某些舊版本) sudo service mysql start # 啟動后再次檢查 ps -ef | grep mysql | grep -v grep
3. 如果提示command not found
說明 MySQL 根本沒裝,需要先安裝:
# Ubuntu/Debian sudo apt update && sudo apt install mysql-server -y # CentOS/RHEL sudo yum install mysql-server -y
四、附:grep -v grep的作用
你之前的命令沒有加 grep -v grep,所以 grep 自己也被列出來了。
# 會包含 grep 自己 ps -ef | grep mysql # 排除 grep 自己,結(jié)果更干凈 ps -ef | grep mysql | grep -v grep
對比:
# 不加 -v grep:看到一行(grep 自身) ps -ef | grep mysql # mumu 487546 ... grep --color=auto mysql # 加 -v grep:完全沒輸出 → 說明真的沒有 mysql 進程 ps -ef | grep mysql | grep -v grep # (無輸出)
總結(jié)一句話
你的輸出里只有 grep 自己,說明 MySQL 沒有運行。
用 systemctl start mysql 啟動,或用 which mysql 檢查是否安裝。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 22104 12880 9168 S 0.0 0.1 0:48.44 systemd
2 root 20 0 3120 1920 1920 S 0.0 0.0 0:00.28 init-systemd(Ub
7 root 20 0 3168 1952 1792 S 0.0 0.0 0:00.13 init
40 root 19 -1 66824 15132 14236 S 0.0 0.1 6:03.07 systemd-journal
86 root 20 0 25412 6400 4864 S 0.0 0.0 1:05.71 systemd-udevd
148 systemd+ 20 0 21460 12672 10496 S 0.0 0.1 0:08.82 systemd-resolve
149 systemd+ 20 0 91028 7552 6656 S 0.0 0.0 0:23.68 systemd-timesyn
155 root 20 0 4236 2560 2432 S 0.0 0.0 0:01.82 cron
156 message+ 20 0 9824 4992 4480 S 0.0 0.0 0:30.69 dbus-daemon
163 root 20 0 18036 8320 7424 S 0.0 0.1 0:10.61 systemd-logind
171 root 20 0 3160 1920 1792 S 0.0 0.0 0:00.00 agetty
174 syslog 20 0 222508 5120 4224 S 0.0 0.0 0:05.57 rsyslogd
187 root 20 0 3116 1792 1664 S 0.0 0.0 0:00.00 agetty
201 root 20 0 107008 22272 13184 S 0.0 0.1 0:00.04 unattended-upgr
280 root 20 0 3156 1300 1152 S 0.0 0.0 0:00.00 Relay(281)
282 root 20 0 6820 4480 3712 S 0.0 0.0 0:00.00 login
325 mumu 20 0 20312 10880 8960 S 0.0 0.1 0:06.69 systemd
326 mumu 20 0 21156 3520 1792 S 0.0 0.0 0:00.00 (sd-pam)
348 mumu 20 0 9768 8448 3328 S 0.0 0.1 0:00.02 bash
587 mumu 20 0 2800 1664 1664 S 0.0 0.0 0:00.00 sh
599 mumu 20 0 11.3g 135336 47488 S 0.0 0.8 7:39.32 node
851 mumu 20 0 11.1g 70200 43136 S 0.0 0.4 0:55.84 node
196242 polkitd 20 0 308164 7808 7040 S 0.0 0.0 0:14.26 polkitd
270068 root 20 0 12024 7936 6912 S 0.0 0.0 0:00.00 sshd
270086 root 20 0 14964 10344 8704 S 0.0 0.1 0:00.04 sshd
270089 root 20 0 14976 10344 8704 S 0.0 0.1 0:00.03 sshd
mumu@MuJinqiu:~/bigdata/2026/test$這張 top 進程列表信息量很大!
你已經(jīng)成功在 Linux 環(huán)境里跑起了前端開發(fā)相關(guān)的服務(wù)
針對你之前關(guān)注的“MySQL 啟動問題”,結(jié)合這張表,分析如下:
1. 核心結(jié)論:確實沒有 MySQL
在這份完整的進程列表里(從 PID 1 到 27 萬),完全沒有 mysqld(MySQL 服務(wù)進程)。
這證實了之前的判斷:你的 WSL 子系統(tǒng)里確實沒有安裝 MySQL,或者安裝了但從未啟動成功。
2. 驚喜發(fā)現(xiàn):你已經(jīng)在跑 Node.js 服務(wù)!
列表中出現(xiàn)了兩個非常熟悉的進程,說明你作為前端開發(fā)者的身份已經(jīng)暴露了
| PID | 用戶 | 內(nèi)存占用 | 說明 |
|---|---|---|---|
| 599 | mumu | 0.8% | Node.js 主進程(運行了 7 個多小時) |
| 851 | mumu | 0.4% | 另一個 Node.js 進程(運行了近 1 小時) |
這意味著:你的 Ubuntu 環(huán)境是正常的,并且你已經(jīng)成功運行了 JavaScript/Node.js 項目。既然 Node 能跑,裝 MySQL 也完全沒問題。
這兩個node進程說明:
- 你正在運行 Node.js 應(yīng)用程序
- 可能是前端開發(fā)服務(wù)器(Vite / Webpack Dev Server)、后端 API 服務(wù)(Express / Nest)、或者 Hexo 博客等
如何查看具體是哪個項目/命令?
方法1:查看完整命令行(推薦)
ps -ef | grep node | grep -v grep
輸出會顯示完整的啟動命令,比如:
mumu 599 ... node /home/mumu/my-project/node_modules/.bin/vite mumu 851 ... node /home/mumu/backend/server.js
方法2:用 top 按 c 鍵
- 在
top界面里按c,COMMAND 列會顯示完整命令路徑 - 再按一次
c恢復(fù)
方法3:查看進程的工作目錄
# 查看 PID 599 的啟動目錄
ls -l /proc/599/cwd
方法4:查看進程打開的端口(判斷是什么服務(wù))
# 查看 node 進程監(jiān)聽了哪些端口 sudo netstat -tlnp | grep node # 或 sudo ss -tlnp | grep node
常見 Node 端口:
| 端口 | 常見用途 |
|---|---|
| 3000 | Express / React dev server |
| 5173 | Vite dev server |
| 8080 | Webpack / http-server |
| 9229 | Node inspector 調(diào)試端口 |
mumu@MuJinqiu:~/bigdata/2026/test$ ps -ef | grep node | grep -v grep mumu 599 587 0 May04 ? 00:07:40 /home/mumu/.cursor-server/bin/93e276db8a03af947eafb2d10241e2de17806c20/node /home/mumu/.cursor-server/bin/93e276db8a03af947eafb2d10241e2de17806c20/out/server-main.js --start-server --host=127.0.0.1 --port=0 --connection-token-file /home/mumu/.cursor-server/.93e276db8a03af947eafb2d10241e2de17806c20.token --telemetry-level off --use-host-proxy --disable-websocket-compression --without-browser-env-var --accept-server-license-terms mumu 851 599 0 May04 ? 00:00:55 /home/mumu/.cursor-server/bin/93e276db8a03af947eafb2d10241e2de17806c20/node /home/mumu/.cursor-server/bin/93e276db8a03af947eafb2d10241e2de17806c20/out/bootstrap-fork --type=ptyHost --logsPath /home/mumu/.cursor-server/data/logs/20260403T190048 mumu@MuJinqiu:~/bigdata/2026/test$
用 Cursor 連接到了 WSL(或者直接打開了 WSL 里的文件夾)。Cursor 會自動在 WSL 里部署一個“遠程服務(wù)器”來實現(xiàn):
- 代碼補全
- 終端集成
- 文件瀏覽
- 調(diào)試
這就是為什么你看到它們一直在運行,而且 COMMAND 里很多 cursor-server 相關(guān)的路徑。
Cursor 編輯器沒有打開,但后臺卻有 Cursor 的進程在運行,這其實很正常。
驗證 Cursor 進程是否還被使用
# 查看這些進程的啟動時間 ps -p 599,851 -o pid,lstart,cmd
如果啟動時間是幾個月前,說明是舊殘留;
如果是今天或最近,說明某個工具還在用。
PID STARTED CMD
599 Mon May 4 21:10:53 2026 /home/mumu/.cursor-server/bin/93e276db8a03af947eafb2d10241e2de1
851 Mon May 4 21:10:58 2026 /home/mumu/.cursor-server/bin/93e276db8a03af947eafb2d10241e2de1
mumu@MuJinqiu:~/bigdata/2026/test$這兩個進程是2026年5月4日啟動的,距離現(xiàn)在已經(jīng)10 天了。
| 項目 | 結(jié)論 |
|---|---|
| 啟動時間 | 2026年5月4日(已運行10天) |
| 當(dāng)前狀態(tài) | Cursor 編輯器早已關(guān)閉,但后臺服務(wù)還在運行 |
| 是否正常 | ? 正常,這是遠程開發(fā)工具的設(shè)計行為 |
| 是否影響工作 | ? 不影響,內(nèi)存占用很小 |
| 你的其他軟件 | PyCharm、SQL Developer、VSCode、MobaXterm 都與此無關(guān) |
一、為什么過了 10 天還在?
Cursor(以及 VS Code)的遠程服務(wù)器設(shè)計為持久運行:
- 第一次連接 WSL 時自動部署
- 之后即使關(guān)閉本地編輯器,WSL 里的服務(wù)不會自動退出
- 下次打開 Cursor 連接 WSL 時,直接復(fù)用現(xiàn)有服務(wù),速度更快
相當(dāng)于:Cursor 在你 WSL 里"安家"了,除非你主動讓它搬走。
二、要不要清理?
| 選擇 | 做法 | 影響 |
|---|---|---|
| 留著不管 | 什么都不做 | 下次用 Cursor 打開 WSL 更快,內(nèi)存占用忽略不計 |
| 手動清理 | kill -9 599 851 | 釋放幾十 MB 內(nèi)存,下次 Cursor 連接時會重新部署 |
建議:留著。反正你 WSL 內(nèi)存充足(之前 top 顯示 15.6G 總內(nèi)存,只用了一小部分)。
三、如何防止以后再自動部署?
如果你確定再也不需要用 Cursor 編輯 WSL 里的文件,可以刪除它的服務(wù)器文件:
# 刪除 Cursor 在 WSL 里部署的服務(wù)端 rm -rf ~/.cursor-server # 殺掉當(dāng)前進程 kill -9 599 851 # 驗證 ps -ef | grep cursor | grep -v grep
下次 Cursor 連接 WSL 時會重新部署,但至少現(xiàn)在清干凈了。
如何管理這些 Node 進程?
# 查看所有 node 進程詳情 ps aux | grep node # 查看某個端口被哪個 node 進程占用 sudo lsof -i :3000 # 重啟/停止進程(如果知道進程管理器) pm2 list # 如果用了 pm2 pm2 stop 0 # 停止某個 # 直接 kill 進程(不推薦,除非卡死) kill -15 599 # 優(yōu)雅關(guān)閉
3. 其他環(huán)境觀察(對你后續(xù)工作有幫助)
| 組件 | 狀態(tài) | 說明 |
|---|---|---|
SSH 服務(wù) (sshd) | ? 正常 | 有 root 進程在監(jiān)聽 |
定時任務(wù) (cron) | ? 正常 | 后臺運行中 |
系統(tǒng)日志 (rsyslog) | ? 正常 | 日志記錄正常 |
你的 Shell (bash) | ? 正常 | PID 348,正是你當(dāng)前的操作界面 |
結(jié)論:你的 Linux 環(huán)境本身是非常健康的,只是缺少 MySQL 服務(wù)。
4. 接下來可以這樣操作
第一步:確認你是否需要 MySQL
- 如果你的項目用 MongoDB 或 其他云數(shù)據(jù)庫,那就不需要裝 MySQL。
- 如果是全棧項目,需要 MySQL,那么確實還沒裝。
第二步:檢查軟件源并安裝 MySQL
# 1. 更新軟件源(確保能裝最新版) sudo apt update # 2. 安裝 MySQL 服務(wù)端 sudo apt install mysql-server -y # 3. 查看 MySQL 是否啟動 sudo systemctl status mysql # 如果沒啟動,手動啟動 sudo systemctl start mysql
第三步:安裝后驗證
# 查看進程(應(yīng)該能看到 mysqld) ps -ef | grep mysql | grep -v grep # 嘗試登錄 sudo mysql # 或者(如果設(shè)置了密碼) mysql -u root -p
5. 一個小建議
從 top 輸出能看到:
%Cpu(s): 0.0 us→ CPU 幾乎空閑Mem: 15.6G total, 13.5G free→ 內(nèi)存非常充足
你的電腦配置很好,跑幾個 MySQL、Node、Redis 同時運行都沒問題。
總結(jié)
- 當(dāng)前沒有 MySQL ? 確認
- 你的 WSL Ubuntu 環(huán)境正常 ? 確認
- 你已經(jīng)成功運行了 Node.js ? 意外收獲
- 下一步:
sudo apt install mysql-server即可
Ubuntu = 一個開箱即用的 Linux 系統(tǒng),適合新手和服務(wù)器
| 特點 | 說明 |
|---|---|
| 基于 Debian | 最穩(wěn)定的 Linux 基礎(chǔ)系統(tǒng)之一 |
| 易上手 | 圖形界面友好,新手友好 |
| 免費開源 | 完全免費,代碼開放 |
| 軟件豐富 | apt 命令一鍵安裝軟件 |
| 社區(qū)龐大 | 遇到問題容易搜到解決方案 |
| 企業(yè)支持 | 騰訊云、阿里云默認鏡像之一 |
常見版本
| 版本 | 說明 |
|---|---|
| Ubuntu Desktop | 桌面版,有圖形界面,適合日常使用 |
| Ubuntu Server | 服務(wù)器版,無桌面,適合做服務(wù)器 |
| WSL Ubuntu | Windows 子系統(tǒng)里的 Ubuntu(你現(xiàn)在用的就是這個) |
mumu@MuJinqiu:~$ # @后面的 MuJinqiu 是主機名,這就是 Ubuntu 系統(tǒng) sudo apt update # apt 是 Ubuntu 的包管理命令
ps -ef 和 top 的區(qū)別
ps -ef 和 top 是 Linux 里最常用的兩個查看進程的命令,但它們的設(shè)計目的和使用場景完全不同。
簡單來說:ps -ef 是給系統(tǒng)拍一張"照片",top 是給系統(tǒng)放一段"視頻"。
一、核心區(qū)別一句話
| 命令 | 比喻 | 特點 |
|---|---|---|
ps -ef | 拍照 | 顯示某一瞬間的進程狀態(tài),執(zhí)行完就結(jié)束 |
top | 錄像 | 實時持續(xù)刷新,動態(tài)顯示進程變化,按 q 退出 |
二、詳細對比表
| 對比維度 | ps -ef | top |
|---|---|---|
| 更新方式 | 一次性輸出,執(zhí)行完就結(jié)束 | 實時刷新(默認每 3 秒) |
| 適用場景 | 腳本、管道、快速查看 | 交互式監(jiān)控、實時觀察 |
| CPU/內(nèi)存占用 | 低(只跑一次) | 相對較高(持續(xù)刷新) |
| 是否交互 | ? 非交互 | ? 可交互(排序、殺進程等) |
| 輸出格式 | 固定列,簡潔 | 分兩屏:摘要區(qū) + 進程列表 |
| 歷史數(shù)據(jù) | 只看當(dāng)前瞬間 | 可看到 CPU/內(nèi)存的變化趨勢 |
| 常用參數(shù) | -ef、-aux | 進入后按 P/M 排序 |
三、輸出對比
ps -ef輸出示例
UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:00 ? 00:00:01 /sbin/init root 123 1 0 10:00 ? 00:00:00 /usr/sbin/sshd mumu 4567 1234 0 14:30 pts/0 00:00:00 bash mumu 4789 4567 0 15:00 pts/0 00:00:00 ps -ef
- 只有一屏,執(zhí)行完就結(jié)束
- 列固定:PID、PPID、CPU 使用率(C 列)、啟動時間、命令
top輸出示例
top - 15:01:23 up 5:01, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si
MiB Mem : 15985.0 total, 10234.5 free, 3210.1 used, 2540.4 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 12000.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
599 mumu 20 0 11.3g 135336 47488 S 0.0 0.8 7:39.32 node
851 mumu 20 0 11.1g 70200 43136 S 0.0 0.4 0:55.84 node
1 root 20 0 22104 12880 9168 S 0.0 0.1 0:48.44 systemd- 分兩屏:頂部是系統(tǒng)摘要(負載、CPU、內(nèi)存),下面是進程列表
- 自動刷新(每 3 秒)
- 按
q退出
四、使用場景指南
什么時候用ps -ef?
| 場景 | 說明 | 示例 |
|---|---|---|
| 腳本中檢查進程 | 一次性判斷服務(wù)是否在跑 | ps -ef | grep mysql |
| 獲取某個 PID | 快速拿到進程 ID | ps -ef | grep java | awk '{print $2}' |
| 查看父子進程關(guān)系 | PPID 列顯示父進程 | ps -ef | grep 1234 |
| 管道組合處理 | 輸出是純文本,方便 grep/awk | ps -ef | sort -k4 |
什么時候用top?
| 場景 | 說明 | 操作方法 |
|---|---|---|
| 實時監(jiān)控 CPU/內(nèi)存 | 觀察哪個進程在"偷吃"資源 | 直接運行 top |
| 找出最耗 CPU 的進程 | 按 CPU 使用率排序 | 按 P 鍵(大寫) |
| 找出最耗內(nèi)存的進程 | 按內(nèi)存使用率排序 | 按 M 鍵(大寫) |
| 實時觀察負載變化 | 看 load average 的 1/5/15 分鐘值 | 看頂部第一行 |
| 殺死一個進程 | 在 top 里直接殺 | 按 k 再輸入 PID |
| 監(jiān)控特定用戶 | 只看某個用戶的進程 | 按 u 再輸入用戶名 |
五、一個內(nèi)存小技巧
很多面試官會問:如何實時查看 CPU 占用最高的進程?
# 方法1:top + 按 P(推薦) top # 進入后按大寫的 P # 方法2:ps 拍一次照(不實時) ps -aux --sort=-%cpu | head -10 # 方法3:htop(更美觀的 top,需要安裝) sudo apt install htop && htop
六、與前端開發(fā)的類比
| Linux | 前端類比 |
|---|---|
ps -ef | console.log(process) — 打印當(dāng)前狀態(tài)的快照 |
top | Chrome 任務(wù)管理器(Shift+Esc) — 實時刷新,顯示 CPU/內(nèi)存變化 |
htop | 更現(xiàn)代的 Chrome 任務(wù)管理器,顏色更豐富,可交互 |
理解要點:
- 你需要確認某個服務(wù)是否在跑 → 用
ps -ef | grep 服務(wù)名(拍照) - 你需要排查為什么電腦突然卡了 → 用
top(看視頻,找元兇)
總結(jié)
| 命令 | 一句話總結(jié) |
|---|---|
ps -ef | 靜態(tài)快照:看一眼就走,適合腳本和快速查詢 |
top | 動態(tài)監(jiān)控:一直盯著看,適合排查性能問題 |
記住:ps 是照片,top 是視頻。照片用來看"有沒有",視頻用來看"在干嘛"。
以上就是在Linux系統(tǒng)中檢查服務(wù)是否運行的三種主要方法的詳細內(nèi)容,更多關(guān)于Linux檢查服務(wù)是否運行的方法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux .htaccess 設(shè)置 404 等錯誤頁面
linux服務(wù)器下通過設(shè)置htaccess來實現(xiàn)404轉(zhuǎn)向的代碼2008-06-06

