跳转至

五、谁在干活、楼还够住吗

第 7~8 课 · 2026-08-29

前六课学的都是「文件」,这两课开始看正在运行的东西机器的余量

进程:谁在干活

命令 干什么 常用写法
ps 看看谁在干活 ps aux(全部)、ps aux \| grep nginx(只找某个)
top 谁最忙(实时刷新) topq 退出)
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 内存还剩多少 办公桌还有多大空位

-hhuman-readable(给人看的单位,自动换算成 G/M/K),不加的话显示字节数,眼睛看瞎。

动手做过的事

  • 查 nginx 服务状态
  • 看这台机器上跑着哪些服务
  • df -h 看服务器磁盘剩余
  • du -sh 看 finance 目录占多大

一个实用的判断

这两课之后我知道了一个日常自查动作:

df -h          # 磁盘满没满
free -h        # 内存够不够
systemctl status nginx    # 服务活着没

三条命令,30 秒,就能判断「机器是不是本身有问题」。以前网站慢我只会怀疑网络,现在会先看看是不是磁盘满了或者服务挂了。