一、服务管理基础

1.1 程序信号与 kill 命令

在 Linux 操作系统中,信号(signal)作为进程间通信的重要机制,用于实现对程序运行状态的控制。常见的信号类型包括:

  • SIGHUP(1):触发程序重新加载配置文件,在不中断服务的情况下实现配置更新
  • SIGINT(2):向进程发送中断请求,功能等同于用户在终端执行 Ctrl+C 操作
  • SIGKILL(9):强制执行进程终止操作,该信号不可被捕获或忽略
  • SIGTERM(15):请求进程正常终止,允许程序执行必要的清理工作
  • SIGSTOP(19):暂停进程的执行,等效于终端操作中的 Ctrl+Z

kill 命令作为信号发送的核心工具,其语法结构如下:

1
2
kill -信号 PID          # 向指定进程标识符(PID)发送信号
killall -信号 程序名 # 向所有匹配程序名的进程实例发送信号

例如,通过执行 kill -1 748 命令,可使 rsyslogd 服务重新加载配置文件,实现动态配置更新。

1.2 systemd 服务管理机制

systemd 作为 Linux 系统的初始化系统,采用创新的服务管理架构,具备以下核心特性:

  1. 并行化服务启动机制显著提升系统启动效率
  2. 基于事件驱动的按需启动策略优化系统资源占用
  3. 内置的依赖解析系统自动处理服务间的依赖关系

其配置文件遵循严格的层级管理规范:

  • /usr/lib/systemd/system/:存放系统默认服务配置文件
  • /etc/systemd/system/:用于管理员自定义服务配置,具有最高优先级

systemd 支持多种单元类型,主要包括:

  • .service:用于定义系统服务(如 crond.service
  • .target:目标单元,用于组织相关服务(如 multi-user.target
  • .socket:管理套接字相关服务
  • .timer:实现定时任务功能

1.3 systemctl 命令操作服务

systemctl 作为 systemd 的命令行管理工具,提供了完备的服务生命周期管理功能:

1
2
3
4
5
6
7
8
# 服务控制操作
systemctl start|stop|restart|reload `服务名` # 实现服务的启动、停止、重启与配置重载
systemctl enable|disable `服务名` # 设置服务的开机自启状态
systemctl status `服务名` # 查询服务当前运行状态

# 服务列表查询
systemctl list-units --type=service # 列出所有已加载的服务单元
systemctl list-unit-files # 显示所有服务配置文件状态

cups 服务管理为例,执行以下命令序列可实现服务关闭与开机禁用:

1
2
systemctl stop cups.service
systemctl disable cups.service

1.4 操作界面(target)管理

systemd 通过目标单元(target)实现系统运行模式的抽象管理,常见的系统运行目标包括:

  • multi-user.target:纯文本模式的多用户运行级别
  • graphical.target:图形化界面运行模式
  • rescue.target:单用户救援模式
  • emergency.target:紧急故障处理模式

相关管理命令如下:

1
2
3
systemctl get-default                 # 查询系统默认运行目标
systemctl set-default multi-user.target # 设置默认运行模式为纯文本模式
systemctl isolate rescue.target # 切换至救援模式运行

1.5 网络服务与端口管理

在网络服务管理领域,通过以下命令可实现端口监听状态的监控:

1
netstat -tlunp | grep `端口号`           # 筛选指定端口的监听状态信息

对于服务与端口的关联管理,以 avahi-daemon 服务为例:

1
2
systemctl stop avahi-daemon.service   # 停止目标服务运行
systemctl disable avahi-daemon.service # 禁用服务开机自启

1.6 系统性能优化 - tuned

tuned 作为系统性能优化框架,提供了标准化的性能调优解决方案:

1
2
3
4
5
6
7
8
# 配置查询
tuned-adm list # 列出所有可用的性能优化配置模板
tuned-adm recommend # 获取系统推荐的优化配置方案

# 配置应用
systemctl start tuned # 启动tuned服务
systemctl enable tuned # 设置服务开机自启
tuned-adm apply throughput-performance # 应用高性能优化配置

二、开机流程与系统启动

2.1 Linux 开机流程

Linux 系统的启动过程遵循严格的分层架构,具体流程如下:

  1. 硬件初始化阶段:BIOS/UEFI 固件执行硬件自检,并确定系统启动设备
  2. 引导加载阶段:
    • BIOS 模式下加载主引导记录(MBR)中的 grub2 引导程序
    • UEFI 模式下加载 EFI 系统分区中的 grub2 引导程序
  3. 内核启动阶段:加载内核镜像与 initramfs 初始内存文件系统,完成硬件驱动初始化
  4. systemd 初始化阶段:
    • 执行 sysinit.target 完成系统基础初始化
    • 启动 multi-user.target 下的所有服务单元
    • 执行 rc.local 自定义脚本
    • 启动用户登录服务

2.2 核心模块管理

内核模式作为 Linux 内核的动态扩展机制,其管理操作如下:

1
2
3
4
5
6
7
# 模块查询
lsmod # 列出当前已加载的所有内核模块
modinfo `模块名` # 获取指定模块的详细信息

# 模块操作
modprobe `模块名` # 动态加载内核模块
modprobe -r `模块名` # 卸载已加载的内核模块

2.3 核心参数调整

内核参数的调整可通过以下方式实现:

1
2
3
4
5
6
# 临时调整
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # 临时禁用ICMP回显响应

# 永久配置
vim /etc/sysctl.d/myconfig.conf # 编辑自定义内核参数配置文件
sysctl -p /etc/sysctl.d/myconfig.conf # 加载并应用配置文件

2.4 grub2 开机管理

grub2 引导程序的配置管理体系包括:

  • 主配置文件:/boot/grub2/grub.cfg(自动生成,建议避免手动修改)
  • 环境配置文件:/etc/default/grub
  • 菜单脚本目录:/etc/grub.d/

常见的配置操作包括:

1
2
3
4
5
6
7
# 修改默认启动等待时间
vim /etc/default/grub # 设置GRUB_TIMEOUT=10
grub2-mkconfig -o /boot/grub2/grub.cfg # 重新生成配置文件

# 添加自定义启动项
vim /etc/grub.d/40_custom # 编辑自定义启动菜单脚本
grub2-mkconfig -o /boot/grub2/grub.cfg # 应用配置变更

2.5 开机救援模式

进入系统救援模式的标准流程如下:

  1. 系统启动时进入 grub 菜单界面
  2. 选择目标内核后按下 e 键进入编辑模式
  3. linux 行末尾添加 rd.break 参数
  4. 按下 Ctrl+X 启动系统进入救援环境

在救援模式下,可通过以下命令重建 initramfs 文件系统:

1
2
chroot /mnt/sysimage            # 切换根目录至原系统
dracut -f /boot/initramfs-$(uname -r).img $(uname -r) # 重新生成initramfs镜像

三、关键命令总结

3.1 服务管理

命令 功能描述
systemctl start service 启动指定系统服务
systemctl enable service 设置服务开机自启
systemctl status service 查询服务运行状态
kill -9 PID 强制终止指定进程

3.2 开机与内核

命令 功能描述
lsmod 显示已加载的内核模块
modprobe module 动态加载内核模块
sysctl -p 应用内核参数配置
grub2-mkconfig 生成 grub 配置文件

3.3 网络与性能

命令 功能描述
netstat -tlunp 查看网络端口监听状态
tuned-adm apply profile 应用系统性能优化配置
journalctl -u service 查看指定服务日志信息