掌握Linux服务管理:systemd全面指南
Linux 服务管理systemd 介绍基本概念CentOS 7 使用 Systemd 引导系统启动速度最快所有进程无论有无依赖关系则都是并行启动很多时候进程没有真正启动而是只有一个信号或者说是标记而已在真正利用的时候才会真正启动。Systemd为了解决上文的问题而诞生。它的目标是为系统的启动和管理提供一套完整的解决方案。系统引导程序用户空间systemdpid为1内核空间kthreaddpid为2服务从业务角度来称呼例如 web 服务数据库服务。守护进程daemonweb 服务器对外提供 web 服务由 web 相关的进程提供支持。以web服务为例服务web服务守护进程httpdsystemd 架构守护进程systemd由守护进程干活。工具systemctl提供给用户要、用来跟机器交互的工具。unit 类型systemctl 命令用于管理不同类型的系统对象这些对象称之为units。Service unit用于定义系统服务文件扩展名为**.service**例如httpd.serviceSocket unit用于标识进程间通信用的 socket文件文件扩展名为.socketTarget unit用于模拟实现“运行级别”文件扩展名为.targetTimer unit用于管理计划任务文件扩展名为.timerDevice unit用于定义内核识别的设备文件扩展名为.deviceMount unit用于定义文件系统挂载点文件扩展名为.mountSnapshot unit管理系统快照文件扩展名为.snapshotSwap unit用于标识swap设备文件扩展名为.swapAutomount unit文件系统的自动挂载点文件扩展名为.automountPath unit用于根据文件系统上特定对象的变化来启动其他服务文件扩展名为.pathSlice unit用于资源管理文件扩展名为.slice查看单个 unit 信息[rootcentos7 ~19:23:23]# systemctl status httpd.service● httpd.service - The Apache HTTP Server Loaded: loaded(/usr/lib/systemd/system/httpd.service;disabled;vendor preset: disabled)Active: active(running)since Wed2026-07-2219:23:23 CST;2s ago Docs: man:httpd(8)man:apachectl(8)Main PID:3769(httpd)...关键字概述loaded单元配置文件已处理active(running)正在运行active(exited)已成功完成一次性配置active(waiting)运行中正在等待事件inactive不再运行enabled系统引导时启动disabled系统引导时不启动static无法启动依赖其他单元启动# 安装软件包[rootcentos7 ~17:05:10]# yum install -y httpd# 启动服务[rootcentos7 ~17:45:50]# systemctl start httpd# 查看进程[rootcentos7 ~17:49:16]# ps -C httpd fPID TTY STAT TIME COMMAND3663? Ss0:00 /usr/sbin/httpd-DFOREGROUND3682? S0:00\_ /usr/sbin/httpd-DFOREGROUND3683? S0:00\_ /usr/sbin/httpd-DFOREGROUND3684? S0:00\_ /usr/sbin/httpd-DFOREGROUND3685? S0:00\_ /usr/sbin/httpd-DFOREGROUND3686? S0:00\_ /usr/sbin/httpd-DFOREGROUND控制系统服务# 停止服务[rootcentos7 ~18:53:10]# systemctl stop sshd.service# 客户端连接测试[rootcentos7 ~18:53:26]# ssh csrcentos7 hostnamessh: Could not resolvehostnamecentos7: Name orservicenot known# 启动服务[rootcentos7 ~18:54:10]# systemctl start sshd.service# 客户端连接测试[rootcentos7 ~18:54:39]# ssh csrcentos7 hostnamessh: Could not resolvehostnamecentos7: Name orservicenot know# 重启服务相当于stop再start[rootcentos7 ~18:57:46]# systemctl restart sshd.service# 一般用于配置文件变动后重新加载# 重新加载服务服务对应的主进程不会重启只会重新加载一次配置文件。[rootcentos7 ~18:58:03]# systemctl reload sshd.service# 禁止服务开机自启[rootcentos7 ~18:58:08]# systemctl disable sshd.serviceRemoved symlink /etc/systemd/system/multi-user.target.wants/sshd.service.[rootcentos7 ~18:58:39]# systemctl is-enabled sshddisabled# 重启系统验证[rootcentos7 ~18:58:51]# reboot# 设置服务开机自启[rootcentos7 ~19:07:46]# systemctl enable sshd.service[rootcentos7 ~19:09:31]# systemctl is-enabled sshdenabled[rootcentos7 ~19:09:43]# reboot# 禁用服务服务被禁用后将无法start因为服务的配置文件指向/dev/null[rootcentos7 ~19:10:19]# systemctl mask sshd.serviceCreated symlink from /etc/systemd/system/sshd.service to /dev/null.[rootcentos7 ~19:10:39]# systemctl start sshd.serviceFailed to start sshd.service: Unit is masked.[rootcentos7 ~19:11:03]## 取消禁用[rootcentos7 ~19:11:12]# systemctl unmask sshd.serviceRemoved symlink /etc/systemd/system/sshd.service.[rootcentos7 ~19:11:26]# systemctl start sshd.service[rootcentos7 ~19:11:29]#[rootcentos7 ~19:12:48]# systemctl status sshd.service● sshd.service - OpenSSH server daemon Loaded: loaded(/usr/lib/systemd/system/sshd.service;enabled;vendor preset: enabled)Active: active(running)since Wed2026-07-2219:07:07 CST;5min ago Docs: man:sshd(8)man:sshd_config(5)Main PID:1067(sshd)CGroup: /system.slice/sshd.service └─1067 /usr/sbin/sshd-D...unit 配置文件unit 配置文件存放在多个位置/etc /systemd/system/unit.service优先生效。一般是管理员自定义的配置。/usr/lib /systemd/system/unit.service其次生效。软件包自带的默认配置。配置文件说明示例单元文件/usr/lib/systemd/system/sshd.service说明# 标识该部分为 Unit 配置用于描述服务的基本信息、依赖关系等。[Unit]# 服务的描述信息说明这是 OpenSSH 服务器守护进程便于管理员识别服务用途。DescriptionOpenSSH server daemon# 指定服务的文档路径这里指向 sshd 命令的手册页man 8 sshd和配置文件的手册页man 5 sshd_config方便用户查阅帮助。Documentationman:sshd(8)man:sshd_config(5)# 定义服务的启动顺序sshd 服务必须在 network.target网络服务就绪和 sshd-keygen.serviceSSH 密钥生成服务之后启动确保依赖的资源已准备好。Afternetwork.target sshd-keygen.service# 表示 sshd 服务 希望 sshd-keygen.service 运行但不是强制依赖。如果 sshd-keygen.service 启动失败sshd 仍会尝试启动通常用于生成初始 SSH 密钥若密钥已存在则不影响。Wantssshd-keygen.service# 标识该部分为 Service 配置用于定义服务的启动方式、执行命令、重启策略等。[Service]# 定义服务的类型为 notify表示服务启动后会主动通知 systemd 自己已就绪通过 sd_notify() 函数systemd 会等待这个通知后再继续后续流程确保服务真正可用。Typenotify# 指定环境变量文件的路径/etc/sysconfig/sshd 中通常定义 OPTIONS 等变量如额外的 sshd 启动参数这些变量会被后续的 ExecStart 引用。EnvironmentFile/etc/sysconfig/sshd# 服务启动时执行的命令ExecStart/usr/sbin/sshd-D$OPTIONS# /usr/sbin/sshdsshd 守护进程的可执行文件路径。# -D表示 sshd 以非守护进程模式运行前台运行因为 systemd 通常管理前台进程便于监控。# $OPTIONS引用 EnvironmentFile 中定义的额外参数如 -p 2222 指定端口。# 服务重载配置时执行的命令ExecReload/bin/kill-HUP$MAINPID# kill -HUP 发送 SIGHUP 信号给 sshd 主进程使其重新加载配置文件无需重启服务。# $MAINPID 是 systemd 自动维护的服务主进程 ID。# 定义服务停止时的杀死模式process 表示只杀死服务的主进程sshd 主进程其子进程如已建立的 SSH 连接会被保留避免强制中断现有连接。KillModeprocess# 定义服务的重启策略当服务因非正常退出如崩溃、信号终止时systemd 会自动重启服务正常退出如主动停止则不重启。Restarton-failure# 服务重启前的等待时间这里设置为 42 秒避免频繁重启导致资源耗尽。RestartSec42s# 标识该部分为 Install 配置用于定义服务如何被 启用即系统启动时自动运行。[Install]# 表示当系统启动到 multi-user.target多用户命令行模式非图形界面时该服务会被自动启动。这是服务器的默认运行级别确保 SSH 服务在系统启动后可用。WantedBymulti-user.target开发一个 study 服务开发 studyd 服务主程序 study脚本说明这是一个无限循环的脚本每 5 秒会向/var/log/study.log文件中追加一行包含当前时间的日志内容为[时间]: IM studying [ Linux ]。[rootcentos7 ~15:01:51]# vim /usr/local/bin/study#!/bin/bashwhiletruedoDATE$(date)echo$DATE: Im studying [ Linux ]/var/log/study.logsleep5done[rootcentos7 ~15:09:06]# chmod x /usr/local/bin/study创建 studyd 服务单元文件[rootcentos7 ~15:09:28]# cp /usr/lib/systemd/system/sshd.service \/etc/systemd/system/studyd.service[rootcentos7 ~15:11:55]# vim /etc/systemd/system/studyd.service[rootcentos7 ~15:15:08]# systemctl daemon-reload[rootcentos7 ~15:15:56]# systemctl enable studyd.service --nowCreated symlink from /etc/systemd/system/multi-user.target.wants/studyd.service to /etc/systemd/system/studyd.service.[rootcentos7 ~15:16:26]#[rootcentos7 ~15:17:14]# systemctl status studyd.service● studyd.service - study server daemon Loaded: loaded(/etc/systemd/system/studyd.service;enabled;vendor preset: disabled)Active: active(running)since Wed2026-07-2215:16:26 CST;1min 0s ago Main PID:4784(study)Tasks:2CGroup: /system.slice/studyd.service ├─4784 /bin/bash /usr/local/bin/study └─4829sleep5Jul2215:16:26 centos7.cheng.cloud systemd[1]: Started study server daemon.[rootcentos7 ~15:17:26]#[rootcentos7 ~15:17:48]#[rootcentos7 ~15:17:48]# tail -f /var/lolocal/ lock/ log/验证日志[rootcentos7 ~15:17:48]# tail -f /var/log/study.logWed Jul2215:17:21 CST2026: Im studying [ Linux ] Wed Jul 22 15:17:26 CST 2026: Im studying[Linux]Wed Jul2215:17:31 CST2026: Im studying [ Linux ] Wed Jul 22 15:17:36 CST 2026: Im studying[Linux]Wed Jul2215:17:41 CST2026: Im studying [ Linux ] Wed Jul 22 15:17:46 CST 2026: Im studying[Linux]...

相关新闻

面试题目:讲一下对 Spring 事务的理解

面试题目:讲一下对 Spring 事务的理解

Spring 本身是没有事务的,我们可以从 Spring 如何去实现对数据库事务的一个封装去讲。 底层的运行原理就是你给方法加了Transactional这个注解。Spring 就会给这个类去生成一个代理对象。当我们调用这个方法的时候,其实就是走的代理对象的逻辑。方法在执…

2026/7/23 4:17:12阅读更多 →
西安各区小升初语文、数学、英语真题及答案解析

西安各区小升初语文、数学、英语真题及答案解析

2026/7/23 4:17:12阅读更多 →
工业视觉镜头核心参数全解 | 精准选型规避成像缺陷、提升检测精度、适配多场景机器视觉项目落地

工业视觉镜头核心参数全解 | 精准选型规避成像缺陷、提升检测精度、适配多场景机器视觉项目落地

目录 一、前言 二、工业镜头六大核心参数底层原理与精细化选型指南 2.1 焦距:FOV视野与成像倍率的核心决定因素 2.1.1 核心原理 2.1.2 量化选型公式与实操规范 2.1.3 场景适配选型标准 2.2 分辨率:系统细节捕捉能力的核心度量指标 2.2.1 核心原理 2.2.2 分辨率黄金匹…

2026/7/23 4:17:12阅读更多 →
佳能LBP623cdn打印机竖线故障诊断与维修指南

佳能LBP623cdn打印机竖线故障诊断与维修指南

1. 佳能LBP623cdn打印竖线问题概述佳能LBP623cdn激光打印机出现纵向条纹(竖线)是维修工程师经常遇到的典型故障。这类问题通常表现为打印页面上出现贯穿整个纸张长度的细线或粗线,可能呈现黑色、白色或灰色,位置固定或随机分布。根…

2026/7/23 5:37:25阅读更多 →
5款高效开源工具推荐与使用指南

5款高效开源工具推荐与使用指南

1. 开源工具的价值与选择逻辑在数字化浪潮中,高效工具已成为个人和企业提升生产力的关键因素。但商业软件高昂的订阅费用常让人望而却步,这正是开源工具大放异彩的领域。作为从业十年的技术博主,我亲测过上百款开源软件,发现真正优…

2026/7/23 5:37:25阅读更多 →
Windows 11安装Open Babel 3.1.1指南与化学数据处理

Windows 11安装Open Babel 3.1.1指南与化学数据处理

1. Open Babel简介与Windows环境准备Open Babel是一款开源的化学信息学工具箱,主要用于化学数据的格式转换、分子结构处理以及计算化学相关操作。作为跨平台软件,它在药物设计、材料科学和计算化学领域有着广泛应用。最新版本3.1.1在分子力场计算和文件格…

2026/7/23 5:37:25阅读更多 →
数字孪生智慧仓储管理系统(WMS)怎么选?需要关注哪些技术趋势与建设风险

数字孪生智慧仓储管理系统(WMS)怎么选?需要关注哪些技术趋势与建设风险

随着智能制造、工业互联网、人工智能等技术持续演进,仓储物流体系正在由传统自动化、信息化阶段向智能化、空间化阶段加速转型。作为连接生产制造、物流运输和供应链协同的重要环节,仓储管理系统(Warehouse Management System,WMS…

2026/7/23 5:37:25阅读更多 →
C++图形编程实战:从零构建画图程序与SFML应用开发

C++图形编程实战:从零构建画图程序与SFML应用开发

1. 项目概述:从零构建一个C画图程序 最近在社区里看到不少朋友对图形编程感兴趣,尤其是想用C亲手实现一个画图工具。这确实是个经典又有趣的练手项目,它不像纯算法那样抽象,能让你直观地看到代码如何驱动像素,创造出线…

2026/7/23 5:37:25阅读更多 →
深入TM4C1294寄存器:Flash与EEPROM底层操作与安全配置实战

深入TM4C1294寄存器:Flash与EEPROM底层操作与安全配置实战

1. 项目概述与核心价值在嵌入式开发领域,尤其是基于ARM Cortex-M内核的微控制器项目里,对内部非易失性存储器的精细控制是区分“能用”和“好用”的关键。很多开发者习惯于依赖厂商提供的驱动库,比如TI的TivaWare,进行Flash或EEPR…

2026/7/23 5:35:24阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →