在linux系统的服务管理场景中,service命令是用户经常用到的工具,主要用于对系统服务执行启动、停止、重启、查看状态等基础操作,很多用户会疑惑这个命令是否具备删除服务的能力。

service命令的核心功能
service命令的本质是一个服务管理脚本的调用工具,它会去/etc/init.d/目录下寻找对应服务的脚本,然后执行脚本中定义的对应操作。它的常用操作如下:
- 启动服务:service 服务名 start
- 停止服务:service 服务名 stop
- 重启服务:service 服务名 restart
- 查看服务状态:service 服务名 status
从功能设计来看,service命令仅负责调用服务脚本执行预设的管理动作,本身不具备修改系统服务配置、删除服务文件的能力,因此service命令不能删除服务。
linux下删除服务的正确方式
删除服务的操作需要结合系统使用的初始化系统类型来执行,目前主流的linux系统分为sysvinit和systemd两类初始化系统,操作方式存在差异。
sysvinit系统的服务删除
sysvinit系统的服务脚本存放在/etc/init.d/目录下,同时会在/etc/rc*.d/目录下创建对应的链接文件实现开机自启配置。删除服务的步骤如下:
- 先停止运行中的服务:service 服务名 stop
- 删除开机自启配置,使用chkconfig命令关闭自启并删除链接:
# 关闭服务开机自启
chkconfig 服务名 off
# 删除/etc/init.d/目录下的服务脚本
rm -f /etc/init.d/服务名
# 可选:删除/etc/rc*.d/目录下残留的链接文件
find /etc/rc*.d/ -name "*服务名*" -exec rm -f {} ;
systemd系统的服务删除
systemd系统的服务配置文件以.service为后缀,存放在/usr/lib/systemd/system/或/etc/systemd/system/目录下。删除服务的步骤如下:
- 先停止并禁用服务:
# 停止运行中的服务 systemctl stop 服务名 # 禁用服务开机自启 systemctl disable 服务名
- 删除服务配置文件:
# 删除服务配置文件,根据实际存放路径调整 rm -f /etc/systemd/system/服务名.service # 如果文件在/usr/lib/systemd/system/目录下也一并删除 rm -f /usr/lib/systemd/system/服务名.service
- 重新加载systemd配置使修改生效:
systemctl daemon-reload删除服务的注意事项
在删除服务之前,需要先确认该服务是否为系统核心服务,避免删除后导致系统功能异常。如果是自定义部署的第三方服务,删除前建议先备份服务配置文件和相关数据。删除服务后,可以执行对应初始化系统的服务列表查看命令,确认服务已经被移除:
# sysvinit系统查看服务列表 chkconfig --list # systemd系统查看服务列表 systemctl list-unit-files --type=service如果删除服务后需要重新部署,只需要将服务脚本或service配置文件放回对应目录,重新执行启用和启动操作即可。