五、谁在干活、楼还够住吗
第 7~8 课 · 2026-08-29
前六课学的都是「文件」,这两课开始看正在运行的东西和机器的余量。
进程:谁在干活
| 命令 | 干什么 | 常用写法 |
|---|---|---|
ps |
看看谁在干活 | ps aux(全部)、ps aux \| grep nginx(只找某个) |
top |
谁最忙(实时刷新) | top(q 退出) |
kill |
让某个干活的人停工 | kill 进程号(先用 ps 查到号) |
ps aux | grep 服务名 这个组合我后来用得最多——管道(第 5 课学的)在这里派上了用场。
服务:常驻岗位
有些程序要一直开着(网站、数据库),这叫「服务」。
| 命令 | 干什么 |
|---|---|
systemctl status nginx |
查状态(是死是活) |
systemctl restart nginx |
重启 |
systemctl stop nginx |
停 |
systemctl start nginx |
启 |
比喻:进程是正在干活的人,服务是常驻岗位。 人不一定总在,岗位是排班固定的。
systemctl status 是排错第一步——服务出了问题,先看它状态。
一个印象深刻的细节:restart 其实是「先 stop 再 start」。所以重启的瞬间服务是真的停了一下——如果正在处理请求,那一瞬间的请求会失败。这就是为什么重启要挑时间做。
磁盘与内存:楼还够住吗
| 命令 | 看什么 | 比喻 |
|---|---|---|
df -h |
每层楼剩多少空间 | 硬盘还剩多少 |
du -sh 目录/ |
某个目录占多大 | 哪个部门占地方 |
free -h |
内存还剩多少 | 办公桌还有多大空位 |
-h 是 human-readable(给人看的单位,自动换算成 G/M/K),不加的话显示字节数,眼睛看瞎。
动手做过的事
- 查 nginx 服务状态
- 看这台机器上跑着哪些服务
df -h看服务器磁盘剩余du -sh看 finance 目录占多大
一个实用的判断
这两课之后我知道了一个日常自查动作:
三条命令,30 秒,就能判断「机器是不是本身有问题」。以前网站慢我只会怀疑网络,现在会先看看是不是磁盘满了或者服务挂了。