服务分类

  1. 系统服务

    • 服务对象为 Linux 系统本身或系统用户

    • 示例:监控磁盘阵列状态的mdmonitor服务

  2. 网络服务

    • 提供给网络中其他客户端调用

    • 示例:Web 服务、网络文件系统服务(NFS)

Systemd 服务管理程序

核心概念

  • 地位:Linux 系统启动后首个进程(PID=1),所有进程的父进程

  • 兼容性:替代传统Sysvinit,兼容主流 Linux 发行版

  • 管理工具systemctl(融合servicechkconfig功能)

  • 服务目录/usr/lib/systemd/system

单元(Unit)机制

  • 定义:通过配置文件封装的服务单元,名称与配置文件一致(如httpd.service

  • 存储路径

    • 系统级:/usr/lib/systemd/system

    • 用户级:/etc/systemd/system

  • 类型

    • service(最常用,后台服务进程)

    • socketdevicemounttarget

Systemd 与 Sysvinit 命令对比

任务

Sysvinit 命令

Systemd 命令

启动服务

service sshd start

systemctl start sshd.service

停止服务

service sshd stop

systemctl stop sshd.service

重启服务

service sshd restart

systemctl restart sshd.service

检查服务状态

service sshd status

systemctl status sshd.service

systemctl is-active sshd.service(仅查状态)

开机自动启动

chkconfig sshd on

systemctl enable sshd.service

开机禁用启动

chkconfig sshd off

systemctl disable sshd.service

系统服务启动控制

查看状态

  • 所有单元systemctl list-unit-files

  • 仅服务类型systemctl list-unit-files --type=service

  • 示例输出

    bash

  • nfs-server.service enabled # 已启用 nfs-lock.service static # 静态(随依赖服务启动)

设置状态

  • 启用 / 禁用服务

    bash

  • systemctl enable sshd.service # 开机自启 systemctl disable sshd.service # 禁止自启

Linux 系统运行级别(Systemd Target)

Target 替代传统运行级别

  • 本质:逻辑分组的配置单元,用于统一控制服务组合

  • 示例graphical.target(图形化模式)包含multi-user.target(多用户模式)的所有服务 + 图形界面服务

运行级别与 Target 对应表

传统级别

Systemd Target

描述

0

runlevel0.target, poweroff.target

关机状态

1

runlevel1.target, rescue.target

单用户模式(急救模式)

2/4

runlevel2.target, multi-user.target

用户自定义级别(默认同级别 3)

3

runlevel3.target, multi-user.target

多用户非图形化模式

5

runlevel5.target, graphical.target

多用户图形化模式

6

runlevel6.target, reboot.target

重启系统

操作命令

  1. 查看当前运行级别

    bash

  • runlevel # 输出示例:N 5(N表示未切换过,当前为级别5)

  • 临时切换级别

    • init [0-6](传统方式)

    • systemctl isolate [target](Systemd 方式)

      bash

  • systemctl isolate multi-user.target # 切换到级别3 systemctl isolate graphical.target # 切换到级别5

  • 设置默认运行级别

    bash

  1. systemctl set-default multi-user.target # 默认级别3(非图形化) systemctl set-default graphical.target # 默认级别5(图形化)

关键指令速查表

场景

命令

说明

检查服务开机自启状态

systemctl is-enabled httpd.service

输出enableddisabled

查看服务详细状态

systemctl status httpd.service

显示运行日志、依赖关系等

重启系统

systemctl rebootinit 6

关机

systemctl poweroffinit 0