systemd 服务管理速记:单元文件、启停与日志排障
【摘要】 systemd 服务管理速记:单元文件、启停与日志排障Linux 服务器上的服务大多归 systemd 管,会写单元文件、会看日志,日常运维就够用了。 一、常用启停命令systemctl start nginx # 启动systemctl stop nginx # 停止systemctl restart nginx # 重启systemctl ena...
systemd 服务管理速记:单元文件、启停与日志排障
Linux 服务器上的服务大多归 systemd 管,会写单元文件、会看日志,日常运维就够用了。
一、常用启停命令
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl restart nginx # 重启
systemctl enable nginx # 开机自启
systemctl status nginx # 看状态和最近几行日志
改配置后用 restart,只是重载配置用 reload;分不清就先 status 看服务是不是真的在跑,别凭感觉。
二、写一个自己的 service
# /etc/systemd/system/myapp.service
[Unit]
Description=My App
After=network.target
[Service]
ExecStart=/usr/bin/python3 /opt/myapp/app.py
Restart=always
User=appuser
[Install]
WantedBy=multi-user.target
保存后执行 systemctl daemon-reload 让 systemd 读到新文件,再 enable --now 一步到位:既设自启又立刻启动。Restart=always 能让进程挂了自动拉起,适合长期跑的小服务。
三、日志排障看 journalctl
journalctl -u myapp -f # 实时跟日志
journalctl -u myapp --since today # 只看今天
journalctl -u myapp -p err # 只看错误级别
服务起不来先看这三样:status 里的报错行、journalctl 里同一时间点的完整日志、单元文件里的路径和权限。十有八九是路径写错、用户没权限、或者端口被占。
四、常见坑
- 改了单元文件没生效:忘了
daemon-reload。 - 开机不自启:只
start没enable,重启就没了。 - 一启就退:多半是 ExecStart 命令本身跑不起来,先在终端里手动跑一遍那条命令验证。
记住顺序:写单元、reload、enable --now、出问题先查 journal,systemd 服务管理就这四步循环。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)