当前位置: 首页 > news >正文

CentOS7.9:系统服务管理结构化实战

一、项目概述
1.1 业务场景说明
CentOS 7 全部服务采用 systemd 进行管理,使用 systemctl 命令管控服务启动、停止、开机自启、查看状态;用来管理 DHCP、TFTP、vsftpd、named、ntpd、network 等服务,保障 PXE 批量装机环境所有服务开机自动运行,完成服务器自动化部署。
1.2 环境参数
项目
参数值
操作系统
CentOS Linux release 7.9‑2009
服务管理工具
systemctl(systemd)
服务文件目录
系统服务:/usr/lib/systemd/system/;用户自定义服务:/etc/systemd/system/
测试服务
dhcpd,vsftpd,named,ntpd,NetworkManager
二、systemctl 基础操作命令
2.1 启停服务命令

启动服务

systemctl start dhcpd

停止服务

systemctl stop dhcpd

重启服务

systemctl restart dhcpd

重新加载配置文件,不中断进程

systemctl reload dhcpd
2.2 查看服务运行状态

查看服务详细状态

systemctl status dhcpd

只查看运行状态(active/inactive)

systemctl is‑active dhcpd
2.3 设置开机自启与关闭开机自启

设置开机自动启动

systemctl enable dhcpd

关闭开机自启

systemctl disable dhcpd

一条命令:启动服务并设置开机自启

systemctl enable --now dhcpd

查看是否开机自启

systemctl is‑enabled dhcpd
三、查看系统服务列表
3.1 查看所有已经运行的服务
systemctl list‑units --type=service --state=running
3.2 查看全部服务(包括未启动服务)
systemctl list‑unit‑files --type=service
3.3 查看开机启动项分类

enabled:开机启动;disabled:开机禁止启动

systemctl list‑unit‑files --type=service | grep enabled
四、运行级别(target 模式)
CentOS7 放弃传统 runlevel,使用 target 模式。

查看当前默认运行级别

systemctl get‑default

切换到字符模式(multi‑user.target)

systemctl set‑default multi‑user.target

切换图形模式(graphical.target)

systemctl set‑default graphical.target

  • multi‑user.target:字符界面,机房服务器标准模式;
  • graphical.target:图形桌面模式。
    五、自定义服务文件实战案例
    创建自定义脚本服务,示例:pxe‑server.service。
    5.1 编写 service 文件
    vi /etc/systemd/system/pxe-server.service
    写入配置:
    [Unit]
    Description=PXE‑Server Service
    After=network.target

[Service]
Type=forking
ExecStart=/root/pxe_start.sh
ExecStop=/root/pxe_stop.sh

[Install]
WantedBy=multi‑user.target
5.2 加载新服务配置
新建或修改 service 文件后,刷新 systemd 配置:
systemctl daemon-reload

启动自定义服务并设置开机自启

systemctl enable --now pxe-server
六、屏蔽服务(彻底禁用服务)
部分服务即使设置 disable,软件安装脚本依旧会触发启动,使用 mask 彻底屏蔽。

屏蔽服务,无法手动启动

systemctl mask firewalld

解除屏蔽

systemctl unmask firewalld
七、ks.cfg 批量装机配置(适配 PXE 项目)
在 % post 脚本批量开启服务开机自启,装机完成自动启动整套 PXE 服务。
%post
systemctl enable --now dhcpd
systemctl enable --now vsftpd
systemctl enable --now named
systemctl enable --now ntpd
%end
八、高频故障总结
故障 1:设置 enable 开机自启后,重启服务器服务没有启动

  • 原因 1:service 配置语法错误;
  • 原因 2:依赖服务(network)启动顺序出错;
  • 解决:systemctl status xxx查看日志,检查 [Unit] 段 After 字段。
    故障 2:reload 命令执行失败,只能 restart
  • 原因:该程序不支持热加载配置;
  • 解决:改用 restart 重启服务。
    故障 3:服务 disable 之后,软件更新又自动开启开机项
  • 原因:rpm 包脚本重新修改启动项;
  • 解决:使用 systemctl mask 彻底屏蔽服务。
    故障 4:自定义 service 文件修改之后配置不生效
  • 原因:没有执行 daemon‑reload 刷新配置;
  • 解决:执行systemctl daemon-reload,再重启服务。
http://www.cnnetsun.cn/news/3530681.html

相关文章:

  • 飞牛系统OpenClaw安装配置与优化指南
  • UE5内嵌Vue网页开发指南:5分钟打通双向通信与实战配置
  • Unity视频播放器开发:从VideoPlayer组件到自定义UI的完整实现
  • JPEXS Free Flash Decompiler:终极免费SWF反编译工具完整使用指南
  • AM64x/AM243x硬件防火墙寄存器配置实战与安全设计
  • AI Agent 面试题 636:如何设计RAG系统的检索质量监控?
  • 南极科考技术突破:冰下微生物与臭氧层修复新发现
  • 鸿蒙测试实战:构建关键交互自检面板
  • 智能体技术演进:从Prompt Engineering到Agent Skills的范式转移
  • 从决策到执行的全链路自动化闭环,哪些Agent能实现?——企业级AI Agent选型与技术落地深度解析
  • PotPlayer字幕翻译插件:三步配置实现外语视频无障碍观看
  • 互信息MI实战指南:从信息熵原理到金融/IoT场景应用
  • 智慧出行 【Python旅游数据分析推荐系统】Django+协同过滤算法 界面:BootStrap+ECharts 功能:数据存储、可视化展示、用户交互
  • SMUDebugTool终极指南:深度解锁AMD Ryzen底层硬件控制的专业调试工具
  • C++ REST SDK与HTTP/2实战:构建高性能现代网络应用
  • NsEmuTools:一键管理NS模拟器的终极桌面工具解决方案
  • GPT-Image2有没有平替?我用9个高难提示词测了7个模型
  • AI游戏叙事革命:大语言模型如何重塑NPC与玩家情感连接
  • Windows 11蓝屏0x44:关机重启排查与修复
  • JPEXS终极指南:5个步骤掌握Flash反编译与SWF编辑
  • 机器学习中的数据可视化:从诊断工具到决策中枢
  • C++实现离散点曲率计算:从圆拟合到工程实践
  • 药学高效学习系统:从知识管理到间隔重复的实践指南
  • 深入解析PRU_ICSSG外设接口:寄存器级编程与实时通信实战
  • 终极指南:5步在Windows上完美使用Switch Pro控制器和Joy-Con手柄
  • 国际事务中的第三方调解机制与技术解析
  • G-Helper:如何让你的华硕笔记本性能翻倍而内存占用减半?
  • C++操作符重载实战指南:从原理到工程实践
  • 三步搞定B站热门演出票务:biliTickerBuy抢票工具终极指南
  • 终极指南:如何在macOS上快速制作Windows安装U盘并绕过TPM限制