编辑
2023-12-16
LinuxNotes
00

目录

基本示例
example.service
各部分解释
操作示例

systemd 是 Linux 系统中的系统和服务管理器,用于启动和管理系统服务、守护进程等。systemd 使用 .service 文件来定义服务的行为和配置。下面是一个 systemd 服务单元文件的基本示例,以及一些常见的配置选项。

基本示例

假设我们有一个简单的 Python 脚本 example.py,我们希望用 systemd 来管理它。以下是一个 .service 文件的示例:

example.service

ini
[Unit] # 服务的简要描述 Description=Example Python Service # 确保网络服务已启动后再启动此服务 After=network.target [Service] # 指定服务启动时执行的命令,这里是运行 Python 脚本 ExecStart=/usr/bin/python3 /path/to/your/example.py # 服务的工作目录 WorkingDirectory=/path/to/your # 服务失败后重启策略。`on-failure` 表示服务因错误退出后会自动重启 Restart=on-failure # 指定服务运行的用户 User=nobody # 指定服务运行的组 Group=nogroup # 设置服务运行时所需的环境变量 Environment=ENV_VAR=value [Install] # 指定服务应在 multi-user.target 目标下启用,这通常是系统的多用户运行级别 WantedBy=multi-user.target

各部分解释

  • [Unit] 部分:

    • Description:服务的描述信息。
    • After:指定服务启动的顺序,此处表示在网络服务启动后再启动此服务。
  • [Service] 部分:

    • ExecStart:服务启动时执行的命令。这里是执行 Python 脚本的命令。
    • WorkingDirectory:指定工作目录。
    • Restart:服务失败后重启策略,on-failure 表示服务因错误退出后重启。
    • User:服务将以哪个用户的身份运行。
    • Group:服务将以哪个组的身份运行。
    • Environment:设置环境变量。
  • [Install] 部分:

    • WantedBy:指定目标单元,表示服务应在这个目标下启用。multi-user.target 通常用于定义服务在系统的多用户运行级别下启动。

操作示例

  1. 创建服务文件:将上面的配置保存到 /etc/systemd/system/example.service 文件中。

  2. 重新加载 systemd 配置

    bash
    sudo systemctl daemon-reload
  3. 启动服务

    bash
    sudo systemctl start example.service
  4. 设置服务开机启动

    bash
    sudo systemctl enable example.service
  5. 查看服务状态

    bash
    sudo systemctl status example.service
  6. 停止服务

    bash
    sudo systemctl stop example.service

其他常见选项

  • ExecStop:指定停止服务时执行的命令。
  • ExecReload:指定重载服务配置时执行的命令。
  • Type:指定服务的启动类型,例如 simpleforkingoneshot 等。

你可以根据实际需要调整这些配置选项以适应不同的服务管理需求。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:GYC

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!