本文最后更新于79 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
“服务 = 一直在后台运行的程序”
例如:
Nginx
MySQL
Redis
Docker
SSH
这些:
本质上:
都是:
Linux 服务。
它们会:
长期运行
监听端口
等待请求
例如:
SSH
监听:
22端口
等待远程登录。
Nginx
监听:
80端口
等待浏览器访问。
Redis
监听:
6379端口
等待缓存请求。
三、systemd 是什么(超级核心)
现在 Linux:
大部分系统:
都使用:
systemd
管理服务。
你可以理解成:
“Linux 服务总管”
负责:
启动服务
停止服务
重启服务
开机自启
日志管理
四、systemctl(必须会)
查看服务状态
systemctl status nginx
启动服务
sudo systemctl start nginx
停止服务
sudo systemctl stop nginx
重启服务(特别高频)
sudo systemctl restart nginx
开机启动
sudo systemctl enable nginx
禁止开机启动
sudo systemctl disable nginx
五、你今天必须建立的真正能力
不是:
会敲命令
而是:
“服务排障思维”。
以后:
你工作里最常见:
就是:
服务起不来
服务崩了
服务无法访问
而真正工程师:
第一反应永远不是:
重装
而是:
看日志。
六、日志(Log)是什么
日志:
本质:
程序运行过程中的记录。
例如:
启动成功
端口占用
权限不足
配置错误
连接失败
都会写入日志。
所以:
日志 = 工程师的眼睛。
七、journalctl(重点)
systemd:
自带日志系统:
journalctl
查看 nginx 日志
journalctl -u nginx
查看最近 20 行日志
journalctl -n 20
实时查看日志(超重要)
journalctl -f
类似:
tail -f
八、真正的服务排障流程(超核心)
这个以后你天天会用。
场景:
Nginx 启动失败。
Step1:查看服务状态
systemctl status nginx
发现:
failed
Step2:查看日志
journalctl -u nginx
日志提示:
80端口被占用
Step3:查看谁占用了80端口
ss -lntp | grep 80
或者:
lsof -i:80
发现:
Apache占用了80端口
Step4:解决问题
systemctl stop httpd
Step5:重新启动 nginx
systemctl restart nginx
九、今天最重要的“工程师感觉”
今天你开始:
真正接触:
“线上故障排查”。
以前:
你只是:
使用 Linux
现在:
你开始:
管理服务
排查问题
分析日志
这就是:
SRE
运维
云平台工程师
的核心能力之一。
十、今天必须实操(一定要敲)
1)查看服务
systemctl status sshd
2)查看 Docker 服务(如果已安装)
systemctl status docker
3)查看日志
journalctl -n 20
4)实时追踪日志
journalctl -f
按:
Ctrl + C
退出。
5)查看端口监听
ss -lntp
6)查看80端口
lsof -i:80
十一、今天你必须真正记住的
服务
后台长期运行程序
systemd
Linux服务管理器
systemctl
管理服务
journalctl
查看日志
日志
排查问题核心依据
端口
服务对外通信入口