01. 查看进程
进程就是正在运行的程序。你的服务器上同时跑着几百个进程,ps 能帮你看到它们:
bash
ps aux # 列出所有进程,详情满满
ps aux | grep nginx # 精确找 nginx 进程
ps -ef # 另一种全格式,UNIX 风格
ps -eo pid,ppid,user,%cpu,%mem,cmd # 只显示你关心的列
ps -ef --forest # 树状图,父子进程关系一目了然02. 实时监控
ps 是拍照片,top 是拍视频——实时刷新告诉你谁在吃 CPU、谁在占内存。就像 Windows 的任务管理器,只不过是在命令行里:
bash
top # 实时监控,按 q 退出
# top 里的快捷键(不用记,进去就知道):
# P - 按 CPU 用量排序
# M - 按内存用量排序
# k - 输入 PID 杀进程
# q - 退出
htop # top 的彩色升级版,需单独安装
top -bn1 | head -20 # 非交互模式,抓一次快照03. 进程控制
进程不听话就得管。kill 不是「杀死」而是「发信号」,信号有好几种,温柔地劝退还是直接毙掉由你定:
bash
kill PID # 发 SIGTERM 信号,客气地请进程自己退出
kill -9 PID # 发 SIGKILL 信号,直接毙掉,不给收拾的时间
killall nginx # 按名字杀,所有叫 nginx 的进程全干掉
pkill -f "python app.py" # 按完整命令匹配来杀
nohup command & # 后台运行 + 防断线,关了终端也在跑
disown %1 # 把任务从当前 shell 里摘出去
jobs # 看看有多少后台任务
fg %1 # 把后台任务拉回前台
bg %1 # 把暂停的任务放到后台继续跑04. systemctl 服务管理
systemd 是现代 Linux 的大管家,systemctl 是你指挥它的遥控器。开机启动、启停服务、看日志,全用它:
bash
systemctl start nginx # 启动 nginx
systemctl stop nginx # 停掉 nginx
systemctl restart nginx # 重启(stop + start)
systemctl reload nginx # 热重载配置文件,服务不中断
systemctl status nginx # 看服务跑得怎么样
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启
systemctl list-units --type=service # 列出所有服务
journalctl -u nginx -f # 实时看 nginx 的服务日志systemctl 统一管理所有服务,不管是 nginx、mysql 还是你自己写的程序,都一个语法。
知识测验
第 1/6 题正确 0
让一个进程直接毙掉该用哪个信号?
下一节
下一节 网络命令详解