systemd服务管理入门——用systemctl管服务与开机自启

举报
yd_250779715 发表于 2026/11/07 10:56:25 2026/11/07
【摘要】 刚接触 Linux 服务器时,很多人第一次装好软件就卡住了:服务怎么启动?重启后为什么又停了?答案大多藏在 systemd 里。systemd 是多数现代 Linux 发行版的初始化系统和服务管理器,systemctl 则是和它打交道的命令行工具。学会 systemctl,就等于拿到了管理服务的总开关。 一、服务是什么服务就是在后台持续运行的程序,比如网站服务、数据库、定时任务。它们没有窗口...

刚接触 Linux 服务器时,很多人第一次装好软件就卡住了:服务怎么启动?重启后为什么又停了?答案大多藏在 systemd 里。systemd 是多数现代 Linux 发行版的初始化系统和服务管理器,systemctl 则是和它打交道的命令行工具。学会 systemctl,就等于拿到了管理服务的总开关。

一、服务是什么

服务就是在后台持续运行的程序,比如网站服务、数据库、定时任务。它们没有窗口,不会因为你关闭终端就消失,而是由 systemd 统一启动、监控和停止。每个服务对应一个单元文件,通常以 .service 结尾,放在 /etc/systemd/system 或 /lib/systemd/system 目录下。

二、最常用的五个命令

查看状态是第一步:

systemctl status nginx

输出里 Active 一行会告诉你服务是否在运行,绿色的 active (running) 表示正常,failed 则说明启动失败,下面几行日志往往就是排错线索。

启动、停止和重启也很直观:

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

改完配置文件后,先用 reload 让服务重新加载配置,不必中断正在处理的请求;只有 reload 不生效时,才用 restart:

sudo systemctl reload nginx

三、开机自启:enable 与 disable

服务器重启后服务还在吗?这取决于开机自启有没有打开:

sudo systemctl enable nginx
sudo systemctl disable nginx

enable 会建立开机启动的链接,disable 则取消它。注意 enable 只是让服务开机自动启动,并不会立刻启动它;刚装好的服务通常要先 start 一次,再 enable,才能既运行又自启。可以用 is-enabled 快速确认:

systemctl is-enabled nginx

返回 enabled 说明已设置自启,disabled 说明没有。

四、排错三板斧

服务起不来时别急着重装,先看三处。第一看状态和日志:

systemctl status nginx
journalctl -u nginx -n 50

第二看端口是否被占用、配置文件语法是否写错;第三看是不是权限或目录不存在。很多时候问题不在服务本身,而在它依赖的文件或端口。

五、写一个自己的服务

想让自己写的脚本开机自动跑,可以新建一个单元文件 /etc/systemd/system/hello.service,写好要执行的命令和启动用户,然后执行:

sudo systemctl daemon-reload
sudo systemctl enable --now hello

daemon-reload 是告诉 systemd 重新读取单元文件,–now 表示同时立即启动。之后这个脚本就和系统服务一样,可以用 status 查看、用 stop 停止。

小结

记住这条主线就够了:status 看状态,start/stop/restart 管运行,enable/disable 管开机自启,journalctl 查日志。从今天起,遇到服务问题先打开 systemctl 看一眼,再决定下一步,排错会快很多。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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