systemd 服务管理速记:单元文件、启停与日志排障

举报
yd_254170217 发表于 2026/10/29 09:28:52 2026/10/29
【摘要】 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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。