我想让 systemd 为 RabbitMQ RPC 队列启动多个处理服务器。我尝试按照中的示例进行操作SystemD 生成 N 个进程吗?使用单个systemctl
命令来启动/停止服务器。
这是我的单元文件和模板文件。
[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
工作流程:
启用服务器:
sudo systemctl enable ansibleserver@{1..2}.service
一切从第一次开始
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.
文档说必须至少有ExecStart
or ExecStop
,但上面网络链接中的示例不包括其中任何一个,我不知道我会将它们设置为什么。
有任何想法吗?
答案1
我认为你需要使用.target
ansiblePB 的文件,而不是服务。
这就是您链接到的问题的用途。