Systemd单元文件类型汇总

以下是 systemd 支持的所有单元文件类型的汇总,包括它们的用途和功能:

1. .service

  • 用途:定义和管理系统服务。

  • 功能:配置服务的启动、停止、重启行为及其他参数。

  • 示例

    [Unit]
    Description=My Service
    
    [Service]
    ExecStart=/usr/bin/myservice
    
    [Install]
    WantedBy=multi-user.target
    

2. .socket

  • 用途:定义用于 socket 激活的服务。

  • 功能:配置 socket 监听,触发关联的 .service 单元。

  • 示例

    [Unit]
    Description=My Socket
    
    [Socket]
    ListenStream=80
    
    [Install]
    WantedBy=sockets.target
    

3. .target

  • 用途:定义一个目标单元,用于组织和协调多个服务。

  • 功能:管理和协调多个单元的启动顺序。

  • 示例

    [Unit]
    Description=My Target
    
    [Install]
    WantedBy=multi-user.target
    

4. .timer

  • 用途:定义定时任务。

  • 功能:配置任务的定时触发规则,通常与 .service 配合使用。

  • 示例

    [Unit]
    Description=My Timer
    
    [Timer]
    OnBootSec=5min
    OnUnitActiveSec=1h
    
    [Install]
    WantedBy=timers.target
    

5. .mount

  • 用途:管理文件系统挂载点。

  • 功能:定义文件系统的挂载点和选项。

  • 示例

    [Unit]
    Description=Mount my filesystems
    
    [Mount]
    What=/dev/sda1
    Where=/mnt/mydisk
    Type=ext4
    Options=defaults
    
    [Install]
    WantedBy=multi-user.target
    

6. .automount

  • 用途:管理自动挂载的文件系统。

  • 功能:配置当访问特定路径时自动挂载文件系统。

  • 示例

    [Unit]
    Description=Automount my filesystem
    
    [Automount]
    Where=/mnt/mydisk
    
    [Install]
    WantedBy=multi-user.target
    

7. .swap

  • 用途:管理交换分区(swap space)。

  • 功能:定义如何启用和配置交换分区。

  • 示例

    [Unit]
    Description=Swap Space
    
    [Swap]
    What=/dev/sda2
    
    [Install]
    WantedBy=swap.target
    

8. .slice

  • 用途:定义控制组(cgroup),用于资源管理。

  • 功能:创建和管理资源限制和隔离。

  • 示例

    [Unit]
    Description=My Slice
    
    [Slice]
    CPUQuota=50%
    MemoryLimit=1G
    

9. .path

  • 用途:监控文件系统路径的变化。

  • 功能:定义对指定路径的监控,触发相关服务或动作。

  • 示例

    [Unit]
    Description=Path for my service
    
    [Path]
    PathModified=/etc/myconfig.conf
    
    [Install]
    WantedBy=multi-user.target
    

10. .snapshot

  • 用途:管理系统快照。

  • 功能:创建和恢复系统快照,用于系统恢复和备份。

  • 示例

    [Unit]
    Description=System Snapshot
    
    [Snapshot]
    Description=Take a snapshot of the system
    

11. .scope

  • 用途:用于临时运行的进程,通常由外部程序启动。

  • 功能:管理外部程序或服务的生命周期。

  • 示例

    [Unit]
    Description=My Scope
    
    [Scope]
    

12. .network

  • 用途:定义网络配置。

  • 功能:配置网络接口的设置(如静态 IP、网关等)。

  • 示例

    [Match]
    Name=enp0s3
    
    [Network]
    Address=192.168.1.100/24
    Gateway=192.168.1.1
    
  • 用途:配置网络设备的属性。

  • 功能:定义设备的属性(如 MAC 地址过滤、接口名称)。

  • 示例

    [Match]
    MACAddress=00:11:22:33:44:55
    
    [Link]
    Name=enp0s3
    

14. .tmpfile

  • 用途:定义临时文件和目录的创建和管理。

  • 功能:配置系统在启动时创建和清理临时文件。

  • 示例

    # Create a directory
    d /var/tmp/mydir 0755 root root
    
    # Create an empty file
    f /var/tmp/myfile 0644 root root
    

总结

这些单元文件类型在 systemd 中各自承担着不同的角色,共同协作以管理系统服务、资源、定时任务、挂载点等功能。通过这种模块化的方式,systemd 实现了对系统和服务的精细控制。

posted @ 2024-09-11 18:44  wanghongwei-dev  阅读(33)  评论(0编辑  收藏  举报