Linux系统中关闭服务的命令会根据系统使用的初始化系统不同而有差异,目前主流的初始化系统包括systemd、SysVinit,不同系统对应的操作命令有所区别,下面分别介绍具体的使用方法。

systemd系统下的服务关闭命令
目前大多数主流Linux发行版如Ubuntu 16.04+、CentOS 7+都默认使用systemd作为初始化系统,对应的服务管理命令是systemctl,关闭服务的语法如下:
# 关闭指定服务,服务名不需要加.service后缀也可以 sudo systemctl stop 服务名 # 示例:关闭nginx服务 sudo systemctl stop nginx
如果需要关闭服务的同时禁止其开机自启,可以额外执行以下命令:
sudo systemctl disable 服务名
SysVinit系统下的服务关闭命令
部分较旧的Linux发行版或者精简版系统使用SysVinit作为初始化系统,对应的服务管理命令是service,关闭服务的语法如下:
# 关闭指定服务 sudo service 服务名 stop # 示例:关闭mysql服务 sudo service mysql stop
除此之外,也可以直接调用/etc/init.d/目录下的服务脚本进行操作:
sudo /etc/init.d/服务名 stop # 示例:关闭ssh服务 sudo /etc/init.d/ssh stop
如何确认服务已经关闭
执行关闭命令后,可以通过以下方式验证服务是否真的已经停止运行:
systemd系统验证方法
# 查看服务状态,输出中看到inactive (dead)表示服务已关闭 systemctl status 服务名
SysVinit系统验证方法
# 查看服务进程是否存在 ps -ef | grep 服务名 | grep -v grep # 如果没有输出结果,说明服务已关闭
操作注意事项
- 关闭系统服务一般需要root权限,普通用户执行命令时需要加上
sudo前缀。 - 关闭核心系统服务如网络服务、SSH服务前,要确认操作不会影响到当前的远程连接或者系统正常运行。
- 如果不确定服务名称,可以通过
systemctl list-units --type=service(systemd系统)或者ls /etc/init.d/(SysVinit系统)查看当前系统所有可用服务名。