概述
Linux 服务(也称为守护进程 daemon)是在后台运行的程序。现代 Linux 发行版主要使用 systemd 来管理服务。systemd 基础
systemd 是现代 Linux 的系统和服务管理器,提供了并行启动、按需激活、服务监控等功能。核心概念
| 概念 | 说明 |
|---|---|
| Unit | systemd 管理的基本单元 |
| Target | 一组 Unit 的集合(类似运行级别) |
| Service | 服务类型的 Unit |
| Timer | 定时任务类型的 Unit |
Unit 类型
| 类型 | 扩展名 | 说明 |
|---|---|---|
| service | .service | 系统服务 |
| socket | .socket | 套接字 |
| target | .target | 目标(组) |
| timer | .timer | 定时器 |
| mount | .mount | 挂载点 |
| path | .path | 文件路径监控 |
| device | .device | 设备 |
systemctl 命令
服务管理
开机启动
查看服务
系统控制
Target(运行级别)
创建自定义服务
服务文件位置
服务文件结构
[Unit] 部分
[Service] 部分
[Install] 部分
示例:Node.js 应用
示例:Java 应用
应用服务文件
日志管理
journalctl 查看日志
定时任务(Timer)
systemd Timer 可以替代 cron。创建定时任务
Timer 配置选项
管理定时器
Cron 定时任务
传统的 cron 定时任务仍然广泛使用。crontab 命令
Cron 表达式
系统级定时任务
常用命令总结
| 命令 | 功能 |
|---|---|
| systemctl start service | 启动服务 |
| systemctl stop service | 停止服务 |
| systemctl restart service | 重启服务 |
| systemctl reload service | 重载配置 |
| systemctl status service | 查看状态 |
| systemctl enable service | 开机启动 |
| systemctl disable service | 取消开机启动 |
| systemctl daemon-reload | 重载 systemd 配置 |
| journalctl -u service | 查看服务日志 |
| journalctl -u service -f | 实时跟踪日志 |
- 使用 systemd 管理长期运行的服务
- 服务文件中指定运行用户,避免使用 root
- 配置合适的重启策略
- 使用 journalctl 查看日志排查问题
- 定时任务优先使用 systemd timer