一、什么是服务管理¶
在 Linux 中,服务管理是系统管理中的关键组成部分。它主要涉及对各种服务、守护进程和后台任务的启动、停止、重启、查看状态以及开机自启控制。
服务管理的目标通常包括:
- 让需要的服务在系统启动时自动运行
- 在故障时快速停止、重启或检查服务
- 保持系统服务的稳定性与可用性
二、使用 systemctl 管理服务¶
在现代 Linux 发行版,尤其是 CentOS 7 及以后,最常用的服务管理命令就是 systemctl。
2.1 开机自启动管理¶
设置服务开机自启动:
$ systemctl enable sshd
设置服务开机不自启动:
$ systemctl disable firewalld.service
这类操作常用于服务器基础服务管理,例如 SSH、Web 服务、数据库、监控代理等。
2.2 管理正在运行的服务¶
查看 sshd 远程连接服务状态:
$ systemctl status sshd
关闭正在运行的服务:
$ systemctl stop firewalld.service
启动服务:
$ systemctl start sshd
如果需要,也可以使用重启命令:
$ systemctl restart sshd
2.3 systemctl 常用命令速查表¶
| 操作场景 | 命令 |
|---|---|
| 开机自启 | systemctl enable sshd |
| 开机不自启 | systemctl disable firewalld |
| 启动服务 | systemctl start sshd |
| 停止服务 | systemctl stop sshd |
| 重启服务 | systemctl restart sshd |
| 查看服务状态 | systemctl status 服务名 |
| 显示服务运行情况 | systemctl list-units |
| 显示服务开机自启动情况 | systemctl list-unit-files |
三、特殊情况:无法直接用 systemctl 管理时怎么办¶
有些脚本或特殊服务并不是标准的 systemd 单元,这时可能无法直接通过 systemctl 实现管理。原始笔记中给出的兼容方法是使用 /etc/rc.local。
3.1 给 rc.local 增加执行权限¶
$ chmod +x /etc/rc.local
3.2 把启动命令写入 rc.local¶
把服务启动命令写入 /etc/rc.local,系统启动时就会按该文件中的内容执行。
这种方式通常适用于:
- 临时兼容旧式启动脚本
- 某些没有标准服务文件的程序
- 需要快速验证的启动命令
不过从长期维护角度看,仍然更推荐使用标准的 systemd service 文件。
四、服务管理的实用建议¶
在日常运维中,管理服务时可以优先遵循下面的顺序:
- 先看状态:
systemctl status - 再决定启停或重启:
start、stop、restart - 对需要长期驻留的服务,记得确认开机自启:
enable或disable - 对不支持
systemctl的场景,再考虑rc.local或自定义 service 文件
五、小结¶
Linux 服务管理的核心并不复杂,本质上就是围绕“开机是否启动”和“当前是否运行”这两个问题展开。掌握 systemctl 的常见命令后,大多数基础服务管理场景都可以快速处理。