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

Linux 服务管理

服务管理

在 Linux 系统中,“服务”(Service)指的是在后台运行的长期进程(Daemon),用于提供特定功能(如 Web 服务、数据库服务、网络服务等)。服务管理是 Linux 系统运维的核心任务之一,涉及服务的启动、停止、重启、状态查看及开机自启配置等。

Linux 服务管理的核心概念

服务与进程的关系:服务本质是 “后台进程”,通常以 d 结尾(如 httpdsshdmysqld),但并非绝对。

初始化系统(Init System:服务管理依赖于 “初始化系统”,它是 Linux 启动时第一个运行的进程(PID=1),负责管理所有后续进程(包括服务)。
现代 Linux 主流初始化系统有两种:

Systemd:当前最主流(Ubuntu 16.04+、CentOS 7+、Debian 9 + 等)。

系统管理器(systemd):系统启动时第一个运行的进程(PID=1),负责加载所有单元、启动服务、管理进程生命周期,是系统的 “总管”。

核心命令systemctl

systemctl 是 Systemd 的主命令,用于管理服务的全生命周期:

操作命令说明
启动服务systemctl start <服务名>立即启动指定服务(临时生效)
停止服务systemctl stop <服务名>立即停止指定服务(临时生效)
重启服务systemctl restart <服务名>先停止再启动(配置文件修改后需执行)
重新加载配置systemctl reload <服务名>不停止服务,仅重新加载配置(推荐)
查看服务状态systemctl status <服务名>显示运行状态、PID、日志等详细信息
开机自启(启用)systemctl enable <服务名>配置服务在系统启动时自动运行
关闭开机自启(禁用)systemctl disable <服务名>取消服务的开机自启
查看开机自启状态systemctl is-enabled <服务名>输出 enabled(启用)/disabled(禁用)
列出所有服务systemctl list-units --type=service显示所有服务的状态(loaded/active 等)
#停止服务
systemctl stop firewalld
#启动服务
systemctl start firewalld
#启动开机自启,--now 立即开启
systemctl enable --now firewalld
#启动开机不自启,--now
systemctl disable --now firewalld
#查看服务状态
systemctl status firewalld

服务配置文件(.service)

Systemd 通过 “单元文件” 定义服务的运行规则,文件位置:

  • 系统默认服务:/usr/lib/systemd/system/(不建议手动修改)
  • 自定义服务:/etc/systemd/system/(用户添加的服务放在这里)

单元文件示例(以sshd.service为例)

文件内容分为 [Unit][Service][Install] 三个区块:

[root@kylin-shf ~]# cat /usr/lib/systemd/system/sshd.service [Unit]
Description=OpenSSH server daemon #服务描述(必选)
Documentation=man:sshd(8) man:sshd_config(5)  # 文档地址(可选)
After=network.target sshd-keygen.target# 依赖关系
Wants=sshd-keygen.target# 弱依赖[Service]
Type=notify  # 服务启动类型
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd-permitrootlogin
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY $PERMITROOTLOGIN
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s[Install]
WantedBy=multi-user.target

[Unit]区块参数

参数类型说明
After配置项定义启动顺序(如 A After B 表示服务 A 在服务 B 之后启动),仅控制顺序,不强制依赖关系
Description字符串(必填)服务描述(必选)
Documentation文档地址(可选)服务相关文档的 URL 或本地路径(如手册、官网)
Requires依赖项强依赖关系:若依赖的单元(如 network.target)启动失败,本服务也会启动失败
Wants依赖项弱依赖关系:若依赖的单元启动失败,不影响本服务启动(推荐优先使用,降低耦合)

[Service] 区块参数

参数类型 / 取值说明
Typesimple(默认)ExecStart 命令启动的进程即为主进程,无需 fork 子进程,systemd 直接监控该进程
forking服务启动后会 fork 子进程(主进程退出),需配合 PIDFile 指定子进程 PID 文件(如 nginx、httpd)
oneshot一次性任务(如初始化脚本),执行完自动退出;需配合 RemainAfterExit=yes 保持 “active” 状态
notify服务启动完成后通过 sd_notify() 函数通知 systemd(需程序支持)
ExecStart命令(绝对路径,必填)启动服务的命令(不可用相对路径,参数空格分隔)
ExecStop命令(可选)停止服务的命令
ExecReload命令(可选)重新加载配置的命令(不停止服务,推荐优先使用)
Environment环境变量键值对为服务设置环境变量(多变量用空格分隔)
KillMode=process停止服务时的进程终止模式: - process 表示 “仅杀死主进程”,由主进程自己处理子进程的终止(sshd 的子进程是为每个连接创建的,主进程终止时会自动清理子进程,适合这种 “主 - 子进程” 架构的服务)
Restartno(默认)服务退出时不自动重启
on-failure非正常退出(退出码非 0、被信号终止等)时自动重启
always无论退出原因(正常 / 非正常),始终自动重启(如 sshd 推荐使用)

[Install] 区块(开机自启配置)

参数类型 / 取值说明
WantedByTarget 列表(必填)服务被 systemctl enable 时,符号链接会被创建到指定 Target 的 wants/ 目录(弱依赖目标)
RequiredByTarget 列表服务被 enable 时,链接到指定 Target 的 requires/ 目录(强依赖目标,较少用)
Alias服务别名列表服务的别名(可通过别名管理服务,如 systemctl start alias-name
Also单元列表启用 / 禁用本服务时,同时启用 / 禁用指定单元(批量操

日志管理:journalctl 命令

systemd 内置日志系统(journal),统一管理所有服务和系统日志,通过 journalctl 命令查看:

命令说明
journalctl -u <服务名>查看指定服务的日志(如 journalctl -u nginx
journalctl -u <服务名> -f实时跟踪服务日志(类似 tail -f
journalctl -u <服务名> --since "1h ago"查看 1 小时内的服务日志
journalctl -u <服务名> --no-pager直接输出日志(不分页,适合管道处理)
journalctl -p err查看所有错误级别(err)的日志

示例:

#查看所有错误日志
[root@kylin-shf ~]# journalctl -p err
-- Logs begin at Tue 2025-09-09 14:50:38 CST, end at Tue 2025-09-09 15:26:47 CST. --
Sep 09 14:50:39 oldboy-kylin-v10 kernel: sd 2:0:0:0: [sda] Assuming drive cache: write through
Sep 09 14:50:41 kylin-shf kernel: piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
Sep 09 14:50:41 kylin-shf systemd[1]: Failed to start Hardware Monitoring Sensors.
Sep 09 14:50:42 kylin-shf systemd[1]: Failed to start Crash recovery kernel arming.

localectl本地化管理

用于配置系统的本地化设置(语言、字符编码)和键盘布局

常用命令:

命令说明
localectl查看当前本地化和键盘布局配置
localectl list-locales列出系统已生成的所有 locale(语言编码)
localectl set-locale LANG=<locale>设置系统默认语言(如 zh_CN.UTF-8

示例:

#查看当前本地化配置
[root@kylin-shf ~]# localectlSystem Locale: LANG=zh_CN.UTF-8VC Keymap: cnX11 Layout: cn
# 设置系统默认语言为简体中文 
localectl set-locale LANG=zh_CN.UTF-8
#设置系统默认语言为英文
localectl set-locale LANG=en_US.UTF-8语言配置文件
cat /etc/locale.conf
LANG="zh_CN.UTF-8"

面试题:Linux运行级别

运行级别说明
0关机模式
1rescue救援模式
2multi-user多用户级别,命令行模式,文本模式
3multi-user多用户级别,命令行模式,文本模式
4multi-user多用户级别,命令行模式,文本模式
5图形化界面
6reboot 系统重启

面试题:Linux启动流程

  • 按下电源

  • 开机自检 (BIOS/UEFI)检查硬件是否有问题

  • 引导加载(MBR/GRUB) 引导系统启动磁盘

  • GRUB菜单 可以选择进入什么模式

  • 加载Linux内核 /boot/内核,加载到内存运行

  • 内核初始化启动第一个进程systemd

  • 读取运行级别,桌面模式,命令行模式

  • 系统初始过程,网络,自动挂载,主机名

  • 并行启动/usr/lib/systemd/system/ 服务

    ​ /etc/systemd/system

  • 启动login显示登录界面

https://www.processon.com/view/link/68241642903228249e9b8f04?cid=682412dcb62fa61f2c5028e1

全流程图

image-20250914113628453

总结

  • 服务管理systemd
  • 命令systemctl 管理服务
  • systemctl配置文件
  • localectl 修改语言
  • 面试题Linux运行级别和Linux启动流程
http://www.dtcms.com/a/538198.html

相关文章:

  • 软件推荐网站广州市城乡建设网站
  • 应价交易系统网站开发培训方案
  • 面向具身人工智能的二维世界模型综合综述
  • 高端酒店网站模板免费下载怎么简单页网站
  • 网站内容与功能设计手机端网站seo
  • 百度网站没收录公司如何做网站做推广
  • 泉州网站设计招聘网网站建设开票名称
  • 杭州网站建设费用价格青岛无间设计公司网站
  • 手机app制作网站合肥网页设计就业
  • 做网站移交资料企业电话认证
  • 软件站ui界面设计包括哪些内容
  • 网站建设中数据库的维护论文网统管公司的网站托管服务怎么样
  • 电动自行车违法识别
  • 漯河网站seo工程项目流程八个阶段
  • 东莞网站案例营销wordpress wp_posts.myd 太大
  • 网站开发前端兼职网站建设木马科技
  • 网站后台管理系统功能东莞传媒公司
  • 门户网站建设和运行招标文件莱芜金点子招聘信息电子版
  • 牛人网站建设赣州网站设计哪里好
  • 前端全流程技术方案与落地实践——新项目与迭代项目指南
  • Linux网站开发设计免费代理加盟好项目
  • 接入备案和增加网站wordpress建站seo
  • Nacos动态刷新基础实战:从环境搭建到服务端部署
  • 网站代理怎么赚钱wordpress 0day漏洞
  • 每日一个C语言知识:C 预处理器
  • 南庄网站开发中国男篮最新消息
  • 谷谷互联建的网站如何把qq在线怎么制作php网站
  • 南京金九建设集团网站新浪短链接生成网址
  • 清远做网站seo如何查看网站seo
  • 动漫电影做英语教学视频网站广告投放