使用 systemd 启动守护进程的“n”个副本

使用 systemd 启动守护进程的“n”个副本

我想让 systemd 为 RabbitMQ RPC 队列启动多个处理服务器。我尝试按照中的示例进行操作SystemD 生成 N 个进程吗?使用单个systemctl命令来启动/停止服务器。

这是我的单元文件和模板文件。

[email protected]:

[Unit]
Description=RabbitMQ rpc queue server instance %i for ansiblePB_rpc_queue
Requires=rabbitmq-server.servic
After=multi-user.target rabbitmq-server.service
StopWhenUnneeded=yes

[Service]
PermissionsStartOnly=true
Type=idle
User=secretuser
ExecStart=/usr/bin/python /app/bin/ansibleplaybookserver.py
Restart=always
RestartSec=10

[Install]
WantedBy=ansiblePB.servers.service

ansiblePB.servers.service

[Unit]
Description=Controlling service for the multiple ansiblePB servers

[Install]
WantedBy=multi-user.target

工作流程:

  1. 启用服务器:

    sudo systemctl enable ansibleserver@{1..2}.service
    
  2. 一切从第一次开始

    sudo systemctl start ansiblePB.servers.service
    

它失败了:

Failed to start ansiblePB.servers.service: Unit is not loaded properly: Invalid argument.
See system logs and 'systemctl status ansiblePB.servers.service' for details.

状态给了我:

ansiblePB.servers.service lacks both ExecStart= and ExecStop= setting. Refusing.

文档说必须至少有ExecStartor ExecStop,但上面网络链接中的示例不包括其中任何一个,我不知道我会将它们设置为什么。

有任何想法吗?

答案1

我认为你需要使用.targetansiblePB 的文件,而不是服务。

这就是您链接到的问题的用途。

相关内容