首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >systemd服务和多个haproxy实例

systemd服务和多个haproxy实例
EN

Unix & Linux用户
提问于 2015-10-30 16:21:09
回答 1查看 6K关注 0票数 4

我需要运行两个have实例,并且需要更新haproxy.service文件以添加第二个命令/实例。谷歌引导我在同一个ExecStart=选项中添加第二个命令,用分号隔开,这是行不通的。

下面的内容使我认为可以使用额外的命令添加第二个ExecStart=,这也不起作用。http://www.freedesktop.org/software/systemd/man/systemd.service.html

如何通过systemd服务来运行How的两个实例?

原始命令

代码语言:javascript
运行
复制
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid

新命令

代码语言:javascript
运行
复制
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid; ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy2.conf -p /var/run/haproxy2.pid

第二次尝试

代码语言:javascript
运行
复制
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy2.conf -p /var/run/haproxy2.pid

更新:这就是我从服务haproxy状态得到的信息:

代码语言:javascript
运行
复制
[root@lb01 ~]# service haproxy status
Redirecting to /bin/systemctl status  haproxy.service
haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled)
   Active: inactive (dead) since Fri 2015-10-30 16:35:44 GMT; 6s ago
  Process: 3221 ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy.conf -p /var/run/haproxy.pid; /usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy2.conf -p /var/run/haproxy2.pid (code=exited, status=0/SUCCESS)
 Main PID: 3221 (code=exited, status=0/SUCCESS)
Oct 30 16:48:01 lb01 systemd: Started HAProxy Load Balancer.
Oct 30 16:48:01 lb01 haproxy-systemd-wrapper: Usage : haproxy [-f <cfgfile>]* [ -vdVD ] [ -n <maxconn> ] [ -N <maxpconn> ]
Oct 30 16:48:01 lb01 haproxy-systemd-wrapper: [ -p <pidfile> ] [ -m <max megs> ] [ -C <dir> ]

看来haproxy可能在分号和附加命令中读取参数吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-10-30 19:41:29

如果不同的haproxy实例没有关联,那么到目前为止,最简单的解决方案是按原样使用现有单元,并为所需的附加服务创建第二个单元。

复制单元文件并编辑ExecStart选项以指向第二个配置文件。

如果您预计会启动更多这样的服务,您可能希望使用系统模板函数%d

创建一个/etc/systemd/system/haproxy@.service单元作为现有单元的副本,并使用%i说明符指向相关的配置文件

比如(不完整,因为我不知道haproxy):

代码语言:javascript
运行
复制
[Unit]
Description=haproxy %i

[Service]
ExecStart=/usr/local/sbin/haproxy-systemd-wrapper -f /etc/haproxy%i.conf -p /var/run/haproxy%i.pid

然后,可以启用任何haproxy实例。

代码语言:javascript
运行
复制
systemctl enable haproxy@X

其中X是实例的数量(以及匹配的配置文件)。

如果这些实例是相关的,您可以查看我的问题和答案:如何与自定义服务一起启动和停止侦听器服务

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/239805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档