插件窝 干货文章 如何在 Linux 中执行服务重启命令?

如何在 Linux 中执行服务重启命令?

服务 systemctl 重启 sudo 592    来源:    2025-04-09

在 Linux 系统中,服务重启是常见的运维操作。根据不同的初始化系统(init system),重启服务的命令有所不同。以下是主流初始化系统的服务重启方法:


1. systemd(现代主流系统:Ubuntu 16.04+/CentOS 7+)

# 重启服务(会先停止再启动)
sudo systemctl restart <服务名>

# 示例:重启 Nginx
sudo systemctl restart nginx

相关操作:

# 查看服务状态
sudo systemctl status <服务名>

# 仅停止/启动服务
sudo systemctl stop <服务名>
sudo systemctl start <服务名>

# 重新加载配置(不重启服务)
sudo systemctl reload <服务名>

2. SysVinit(旧版系统:CentOS 6/Ubuntu 14.04 等)

# 使用 service 命令
sudo service <服务名> restart

# 示例:重启 Apache
sudo service httpd restart  # CentOS
sudo service apache2 restart # Ubuntu

或直接调用 init 脚本:

sudo /etc/init.d/<服务名> restart

3. 其他情况

检查初始化系统

如果不确定当前系统使用的初始化系统,可通过以下命令确认:

# 检查 PID 1 的进程
ps -p 1 -o comm=
  • 输出 systemd → 使用 systemctl
  • 输出 init → 使用 service/etc/init.d/

通用重启方法(兼容性尝试)

# 先尝试 systemctl,失败后尝试 service
sudo systemctl restart <服务名> || sudo service <服务名> restart

注意事项:

  1. 权限要求:通常需要 sudo 或 root 权限。
  2. 服务名确认
    • 列出所有服务:systemctl list-unit-files --type=service(systemd)
    • 检查服务是否存在:ls /etc/init.d/(SysVinit)
  3. 日志查看:重启后建议检查日志确认状态: bash journalctl -u <服务名> -b # systemd tail -f /var/log/<服务名>.log # 通用

示例流程(以 Nginx 为例):

# 1. 重启服务
sudo systemctl restart nginx

# 2. 检查状态
sudo systemctl status nginx

# 3. 验证(如果服务有端口监听)
ss -tulnp | grep nginx

根据您的系统选择对应命令即可。现代 Linux 发行版推荐优先使用 systemctl