systemd 配置目录介绍
好的,我现在需要帮用户总结一篇文章的内容,控制在100字以内,并且不需要特定的开头。首先,我得仔细阅读用户提供的文章内容,理解其主要信息。 文章主要介绍了systemd的配置目录结构、单元文件类型、管理命令以及配置优先级。看起来这是关于Linux系统服务管理的内容。用户可能是一位系统管理员或者开发者,正在学习如何使用systemd来管理服务。 接下来,我需要提取关键点:主要配置目录有三个,分别是/etc/systemd/system/、/usr/lib/systemd/system/和/run/systemd/system/。每个目录的作用和优先级不同。然后是单元文件类型,包括服务、路径监控、定时器和目标单元。管理命令部分提到了常用的systemctl命令,比如重载配置、启用服务等。最后是配置优先级顺序和实际应用场景。 现在我要把这些信息浓缩到100字以内。首先列出主要配置目录及其用途,然后提到单元文件类型和管理命令,最后说明应用场景和优先级顺序。 可能会这样组织语言:“介绍了 systemd 的主要配置目录(/etc/systemd/system/、/usr/lib/systemd/system/、/run/systemd/system/)、单元文件类型(.service、.path、.timer、.target)及管理命令(如 systemctl),并说明了配置优先级顺序和实际应用场景。” 这样刚好控制在100字左右,并且涵盖了所有关键点。 确认一下是否符合要求:没有使用特定的开头词,直接描述内容;控制在100字以内;涵盖主要目录、文件类型、管理命令和应用场景。看起来没问题。 </think> 介绍了 systemd 的主要配置目录(/etc/systemd/system/、/usr/lib/systemd/system/、/run/systemd/system/)、单元文件类型(.service、.path、.timer、.target)及管理命令(如 systemctl),并说明了配置优先级顺序和实际应用场景。 2026-3-30 09:47:57 Author: www.yanglong.pro(查看原文) 阅读量:20 收藏

主要配置目录

1. /etc/systemd/system/ (用户自定义配置)

  • 用途: 存放用户和系统管理员创建的服务单元
  • 优先级: 最高(会覆盖 /usr/lib/systemd/system/ 中的同名文件)
  • 典型应用:
    • 自定义服务配置
    • 服务覆盖配置(override)
    • 服务的符号链接
# 查看目录内容示例
ls -la /etc/systemd/system/

2. /usr/lib/systemd/system/ (系统默认配置)

  • 用途: 软件包安装时提供的默认服务单元文件
  • 管理方式: 由包管理器(apt/yum/dnf)维护
  • 注意: 不应直接修改此目录的文件
# 查看已安装服务的默认配置
ls -la /usr/lib/systemd/system/

3. /run/systemd/system/ (运行时配置)

  • 用途: 运行时动态生成的单元文件
  • 特点: 系统重启后内容会丢失
  • 优先级: 高于 /etc/systemd/system/

配置文件类型

服务单元(.service

定义系统服务的行为:

[Unit]
Description=My Application Service
After=network.target

[Service]
Type=simple
User=www-data
ExecStart=/usr/bin/php /var/www/html/artisan queue:work
Restart=always

[Install]
WantedBy=multi-user.target

路径监控单元(.path

监控文件或目录变化:

[Unit]
Description=Watch config file changes

[Path]
PathChanged=/var/www/html/config.php
Unit=myapp.service

[Install]
WantedBy=multi-user.target

定时器单元(.timer

定时任务(类似 cron):

[Unit]
Description=Run backup daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

目标单元(.target

分组管理服务(类似运行级别):

  • multi-user.target – 多用户文本模式
  • graphical.target – 图形界面模式
  • network.target – 网络就绪

常用管理命令

# 重载 systemd 配置(修改配置后必须执行)
sudo systemctl daemon-reload

# 启用服务(开机启动)
sudo systemctl enable myapp.service

# 启动服务
sudo systemctl start myapp.service

# 停止服务
sudo systemctl stop myapp.service

# 重启服务
sudo systemctl restart myapp.service

# 查看服务状态
sudo systemctl status myapp.service

# 查看服务日志
sudo journalctl -u myapp.service -f

# 禁用服务
sudo systemctl disable myapp.service

# 列出所有失败的服务
sudo systemctl --failed

# 查看服务依赖关系
systemctl list-dependencies myapp.service

# 查看启用的所有服务
systemctl list-unit-files --type=service --state=enabled

配置优先级顺序

/run/systemd/system/     (最高优先级)
    ↓
/etc/systemd/system/     (用户配置,推荐修改此处)
    ↓
/usr/lib/systemd/system/ (最低优先级,软件包默认配置)

实际应用场景

场景 1:创建自定义服务

# 1. 创建服务文件
sudo vim /etc/systemd/system/myapp.service

# 2. 重载配置
sudo systemctl daemon-reload

# 3. 启用并启动服务
sudo systemctl enable --now myapp.service

场景 2:覆盖现有服务配置

# 创建覆盖配置(不修改原文件)
sudo systemctl edit nginx

# 这会在 /etc/systemd/system/nginx.service.d/override.conf
# 添加自定义配置片段

场景 3:调试服务配置

# 测试服务配置是否正确
systemd-analyze verify /etc/systemd/system/myapp.service

# 查看服务启动时间分析
systemd-analyze blame

结合您的 WordPress 项目

基于您的项目结构,如果要为 WordPress 或相关服务创建 systemd 配置:

示例:WordPress Cron 服务

# /etc/systemd/system/wp-cron.service
[Unit]
Description=WordPress Cron Handler
After=network.target mysql.service

[Service]
Type=oneshot
User=www-data
WorkingDirectory=/var/www/html
ExecStart=/usr/bin/php wp-cron.php

[Install]
WantedBy=multi-user.target

示例:监控配置文件变化

# /etc/systemd/system/wp-config-monitor.path
[Unit]
Description=Monitor wp-config.php changes

[Path]
PathChanged=/var/www/html/wp-config.php
Unit=php-fpm.service

[Install]
WantedBy=multi-user.target

需要我帮您创建具体的 systemd 配置文件吗?


文章来源: https://www.yanglong.pro/systemd-%e9%85%8d%e7%bd%ae%e7%9b%ae%e5%bd%95%e4%bb%8b%e7%bb%8d/
如有侵权请联系:admin#unsafe.sh