翼度科技»论坛 云主机 LINUX 查看内容

`systemctl` 启动单个服务,其中包含多个进程

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
要使用 systemctl 启动单个服务,其中包含多个进程,你可以使用 Systemd 的 template 机制。以下是使用 Systemd 'template' 以创建一个可同时启动多个进程的服务单元文件的过程:

  • 为你的服务创建一个 template 服务单元文件。服务单元文件通常位于 /etc/systemd/system 目录中。使用以下命令创建一个 template 服务单元文件:
    1. sudo touch /etc/systemd/system/your-service@.service
    复制代码
    注意 @ 符号,它表示这是一个模板服务文件。根据实际服务名称替换 your-service。
  • 编辑 template 服务单元文件。使用文本编辑器(如 nano、vim)打开服务单元文件,并为该服务配置适当的设置。
    1. sudo nano /etc/systemd/system/your-service@.service
    复制代码
    添加以下内容,根据您的实际需求进行修改:
    1. [Unit]
    2. Description=Description of your service instance %i
    3. After=network.target
    4. [Service]
    5. User=user-to-run-the-service-instance
    6. Group=group-to-run-the-service-instance
    7. ExecStart=/path/to/your/program --program-options instance-%i
    8. Restart=always
    9. [Install]
    10. WantedBy=multi-user.target
    复制代码
    将 Description、User、Group 和 ExecStart 替换为适当的值。请特别注意,我们添加了 %i 标记。这将在启动服务时替换为实例编号。
  • 重新加载 Systemd 配置:
    1. sudo systemctl daemon-reload
    复制代码
  • 使用 systemctl 启动具有多个进程的单个服务:
    1. sudo systemctl start your-service@1 your-service@2 your-service@3
    复制代码
    在上述命令中,将 your-service 替换为您在步骤 1 中创建的模板服务文件的名称,并使用所需的实例数量。这将启动多个进程,每个进程都具有不同的实例编号。
现在,你已经配置了一个包含多个进程的服务,并使用 systemctl 将它们同时启动。使用此方法,你可以根据需要动态地启动、停止或重启各个进程实例。
要在系统启动时自动运行这些服务实例,请分别为每个指定实例使用如下命令:
  1. sudo systemctl enable your-service@1
  2. sudo systemctl enable your-service@2
  3. sudo systemctl enable your-service@3
复制代码
替换 your-service 并指定所需实例号。

来源:https://www.cnblogs.com/xzlive/p/17435710.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具