Ubuntu systemctl服务管理

2026-07-01 26

Ubuntu 服务器上的 Web 服务、数据库、缓存、SSH 等组件,通常都需要通过 systemctl 进行管理。服务是否启动、是否开机自启、为什么启动失败,都会直接影响网站和应用运行。本篇教程介绍 systemctl 的常用操作,帮助站长掌握服务启动、停止、重启和故障排查的基本方法。

一、systemctl 是做什么的

Ubuntu 服务器上很多常见服务都由 systemd 管理,例如 Nginx、MySQL、Redis、SSH、PHP-FPM 等。systemctl 是管理这些服务的常用命令。

通过 systemctl,可以查看服务状态、启动服务、停止服务、重启服务,也可以设置服务是否开机自动启动。

如果网站打不开,第一步往往不是改配置,而是先确认相关服务是否正在运行。

二、查看服务状态

查看服务状态可以使用:

systemctl status nginx

如果要查看 SSH 服务,可以根据系统中的服务名称执行:

systemctl status ssh

不同软件包的服务名称可能不同,具体以服务器实际安装情况为准。

systemctl status 输出中可以重点看:

  1. active (running):服务正在运行;
  2. inactive:服务未运行;
  3. failed:服务启动失败;
  4. 最近几行日志:通常能看到失败原因;
  5. Main PID:服务进程编号。

如果服务是 failed,不要马上反复重启,应先查看错误信息。

三、启动、停止和重启服务

常用命令如下:

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

如果只是重新加载配置,可以使用:

sudo systemctl reload nginx

不是所有服务都支持 reload,具体要看服务本身。

restart 和 reload 有什么区别

restart 会重启服务,通常会中断当前进程;reload 是重新加载配置,影响相对更小。

例如修改 Nginx 配置后,如果只是让新配置生效,可以优先考虑 reload。但在 reload 前,应先检查配置语法。

四、设置开机自启

让服务开机自动启动:

sudo systemctl enable nginx

取消开机自启:

sudo systemctl disable nginx

查看是否启用自启:

systemctl is-enabled nginx

开机自启适合 Web 服务、数据库、缓存服务等长期运行组件。但不是所有临时任务都适合设置自启。

五、服务启动失败怎么排查

服务启动失败时,可以按这个顺序排查。

1、先看 status 输出

systemctl status nginx

这里通常会显示最近错误,例如配置文件错误、端口被占用、权限不足、目录不存在等。

2、再看更完整日志

可以使用:

journalctl -u nginx

如果只看最近日志:

journalctl -u nginx -n 50

3、检查端口是否被占用

如果服务启动失败提示端口冲突,可以查看端口:

ss -tulnp

比如 Nginx 要监听 80 端口,但 80 已经被其他服务占用,就会启动失败。

六、服务管理要避免盲目重启

很多新手遇到服务异常,会连续执行 restart。这样可能暂时恢复,也可能掩盖问题。

更稳妥的顺序是:

  1. 查看服务状态;
  2. 查看错误日志;
  3. 检查配置语法;
  4. 确认端口和权限;
  5. 再决定是否重启。

如果是生产网站,还要考虑重启是否影响访问。重要服务操作前,建议先确认访问低峰期和备份状态。

FAQ

Q1:systemctl status 显示 failed 怎么办?

A:先看 status 输出中的错误提示,再用 journalctl 查看服务日志,不要直接反复重启。

Q2:enable 服务后是不是立刻启动?

A:不是。enable 只是设置开机自启。如果要立刻启动,还需要执行 start。

Q3:restart 会不会影响网站访问?

A:可能会。Web 服务或数据库重启时可能短暂中断,生产环境应谨慎操作。

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。