systemctl是centos 7+管理服务的唯一标准命令,替代service/chkconfig;支持start/stop/restart/reload/status/enable/disable/is-enabled/mask/unmask等核心操作,用于服务控制、状态查看、开机自启配置及强制屏蔽。

在CentOS 7及以上系统中管理服务时,必须用systemctl命令替代老旧的service和chkconfig,否则执行会失败或产生不可预期行为,比如设置开机自启后服务仍不启动、状态显示为inactive但进程实际存活等。
启动、停止与重启服务
直接运行服务命令即可生效,无需额外参数或配置文件修改。
启动服务:sudo systemctl start nginx
停止服务:sudo systemctl stop nginx
重启服务:sudo systemctl restart nginx → 这一步会先终止进程再拉起新实例,适用于配置已保存但未重载的场景。
注意:restart不是reload,它必然造成服务短暂中断;若仅修改了配置文件且服务支持热重载(如nginx、sshd),优先用reload避免停服。
查看服务实时运行状态
这是排查服务异常的第一步,输出包含活跃状态、启用状态、主进程PID及最近10行日志。
执行:sudo systemctl status httpd
关键字段说明:【Active: active (running)】 表示服务正在运行;【Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)】 中的“enabled”仅表示开机自启已设,不代表当前正在运行。
若看到“failed”或“inactive”,不要直接重试start,先看日志末尾的error提示行。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
设置服务开机自动启动
启用开机自启不会立即启动服务,只建立符号链接并注册到multi-user.target。
方法一:启用自启
sudo systemctl enable mariadb
方法二:禁用自启
sudo systemctl disable mariadb
方法三:验证是否已启用
sudo systemctl is-enabled mariadb → 返回“enabled”即成功,“disabled”表示未设置,“static”表示该服务不能独立启用(通常被其他服务依赖触发)。
警告:enable操作不可逆撤销,disable后若忘记start,服务将长期处于关闭状态,但系统不会报错提醒。
强制屏蔽服务(高级防护)
当某个服务存在严重安全风险或与其他服务冲突,需彻底禁止其任何形式的启动(包括手动start、依赖触发、远程调用)时使用。
第一步:执行屏蔽命令
sudo systemctl mask sshd
第二步:确认屏蔽生效
sudo systemctl status sshd → 显示“masked”状态,且所有start/stop操作均被拒绝
第三步:解除屏蔽(仅在确认安全后)
sudo systemctl unmask sshd
这一步操作会删除/etc/systemd/system/sshd.service指向/dev/null的符号链接,恢复服务原始单元文件路径。屏蔽后即使执行enable也不会生效。










