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

Orange的运维学习日记--13.Linux服务管理

Orange的运维学习日记–13.Linux服务管理

systemd 介绍

系统启动管理进程

  • CentOS 5 使用 SysV init 串行启动,速度最慢,无并行依赖
  • CentOS 6 使用 Upstart,可并行启动无依赖进程,依赖进程串行启动
  • CentOS 7 使用 systemd 并行标记所有进程,真正运行时才启动,实现最快启动速度

image-20250727151615253

基本概念

  • 服务:从业务角度命名,例如 web 服务、数据库服务
  • 守护进程(daemon):在后台提供服务的进程,如 httpd、sshd 等

示例:安装并启动 Apache(httpd)

# 安装软件包
yum install -y httpd# 修改配置文件,设置 ServerName
vim /etc/httpd/conf/httpd.conf
# 取消 ServerName 注释并赋值
ServerName centos7.laoma.cloud:80# 启动 httpd 服务
systemctl start httpd# 查看守护进程
ps axf | grep httpd

上述输出中,PID 为 httpd 服务的守护进程

systemd 架构

systemd 以 PID 1 方式运行,负责:

  • unit 加载与依赖解析
  • cgroups 资源管理
  • journald 日志收集
  • socket 激活与 D-Bus 通信
  • timer 事件调度

unit 类型

systemd 通过不同后缀区分各种对象

  • Service(.service):定义系统服务
  • Socket(.socket):标识进程间通信的 socket
  • Target(.target):模拟运行级别
  • Timer(.timer):计划任务
  • Device(.device):内核设备
  • Mount(.mount):文件系统挂载点
  • Snapshot(.snapshot):系统快照
  • Swap(.swap):交换分区
  • Automount(.automount):自动挂载点
  • Path(.path):基于文件系统事件触发
  • Slice(.slice):cgroups 资源切片

查看 unit 列表信息

列出已加载并 active 的 units

systemctl list-units

按类型列出 units

# 列出 timer 类型
systemctl list-units -t timer

列出所有 unit 文件(包括未加载)

systemctl list-unit-files

查看失败的服务

systemctl --failed --type service

查看单个 unit 信息

systemctl status sshd.service

输出示例

● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)Active: active (running) since 三 2022-11-09 08:45:45 CST; 5h 50min agoDocs: man:sshd(8) man:sshd_config(5)Main PID: 1167 (sshd)Tasks: 1CGroup: /system.slice/sshd.service└─1167 /usr/sbin/sshd -D 

image-20250727151641272


控制系统服务

常用 systemctl 命令对照表

命令描述
systemctl start 启动服务
systemctl stop 停止服务
systemctl restart 重启服务
systemctl reload 重新加载服务配置
systemctl enable 设置服务开机自启
systemctl disable 取消服务开机自启
systemctl is-enabled 查看开机自启状态
systemctl mask 禁用服务
systemctl unmask 取消禁用服务
systemctl list-dependencies 查看依赖关系
systemctl list-dependencies --reverse查看反向依赖

image-20250727151710372


unit 配置文件路径

  • /etc/systemd/system/:管理员自定义优先级高
  • /usr/lib/systemd/system/:软件包默认配置

自定义服务示例

以开发 mm 服务为例

# 准备可执行文件
cp /bin/md5sum /bin/mm# 复制并编辑 unit 文件
cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/mm.service
vim /etc/systemd/system/mm.service
[Unit]
Description=mm server daemon[Service]
Type=fork
ExecStart=/usr/bin/mm /dev/zero[Install]
WantedBy=multi-user.target
# 重新加载 systemd 配置
systemctl daemon-reload# 设置开机启动并立即启动
systemctl enable mm --now# 查看服务状态
systemctl status mm

常见 unit 激活状态含义

状态含义
loaded单元配置文件已处理
active (running)正在运行
active (exited)一次性任务已成功完成
active (waiting)运行中,等待触发事件
inactive未运行
enabled系统引导时自动启动
disabled系统引导时不启动
static无法单独启用,依赖其他单元触发
inactive未运行
enabled系统引导时自动启动
disabled系统引导时不启动
static无法单独启用,依赖其他单元触发
http://www.xdnf.cn/news/16546.html

相关文章:

  • OpenLayers 综合案例-点位聚合
  • 【通识】线性代数(Linear Algebra)
  • 深度学习在计算机视觉中的应用:对象检测
  • 从 .NET Framework 到 .NET 8:跨平台融合史诗与生态演进全景
  • 设计模式(十一)结构型:外观模式详解
  • ESP32步进电机控制实战:从原理到代码实现
  • JAVA秋招学习指南
  • 【Java实例】服务器IP一站式管理
  • linux 部署 flink 1.15.1 并提交作业
  • ios UIAppearance 协议
  • 元宇宙背景下治理模式:自治的乌托邦
  • 移植pbrt中的并行化到ray trace in weeks中
  • 268. 丢失的数字
  • RocksDB跳表MemTable优化揭秘
  • Java 集合进阶:从 Collection 接口到迭代器的实战指南
  • Containerd简介
  • 栈算法之【有效括号】
  • mybatis-plus从入门到入土(三):持久层接口之IService
  • Day 22: 复习
  • OTG原理讲解
  • 进制间的映射关系
  • 【RHCSA 问答题】第 12 章 安装和更新软件包
  • WorkManager vs Flow 适用场景分析
  • CSS变量与Houdini自定义属性:解锁样式编程新维度
  • [硬件电路-94]:模拟器件 - 信号耦合,让被放大信号与静态工作点的直流偏置信号完美的融合
  • 慧星云新增大模型服务:多款大模型轻松调用
  • 编程语言Java——核心技术篇(四)集合类详解
  • Go的内存管理和垃圾回收
  • 震网(Stuxnet):打开潘多拉魔盒的数字幽灵
  • 网络:基础概念