压缩包安装的haproxy,配置init脚本后以服务方式启动

通过二进制压缩包将haproxy安装好后,可以通过运行主程序/usr/local/haproxy/sbin/haproxy并指定一个配置文件的方式进行启动,如下:

但每次通过主程序启动不方便管理,怎样将haproxy配置成通过服务的方式启动呢?

ps:也可以将主程序复制到/usr/sbin或者/usr/bin下,分别可以用root和普通用户以命令的形式调用,如下:

其实,haproxy解压后的目录中就有一个用于service启动的脚本,在解压目录下的examples目录下:

将该启动脚本复制到/etc/init.d下,并且文件名为haproxy:

mkdir /etc/init.d/haproxy
cp /home/haproxy-2.3.4/examples/haproxy.init /etc/init.d/haproxy

/etc/init.d目录中存放的是一系列服务的管理脚本,该目录是指向/etc/rc.d/init.d的软连接。之前安装keepalived就是通过将keepalived管理脚本复制到该目录实现通过service方式启动服务的。

需要赋予启动脚本可执行权限:

chmod +x /etc/init.d/haproxy

此时尝试启动服务,会启动失败:

 于是通过journalctl -xe命令查看问题:

也就是说haproxy的启动脚本并不能直接使用,需要修改主程序和配置文件的路径。 这里也可以使用haproxy check命令检查启动脚本是否正常。

 我的主程序是在/usr/local/haproxy/sbin/haproxy,确实不在/usr/sbin/haproxy。于是修改启动脚本,修改BIN的值和CFG的值:

#设置为主程序所在路径
BIN=/usr/local/$BASENAME/sbin/$BASENAME
#设置为实际配置文件所在路径
CFG=/etc/$BASENAME/$BASENAME.cfg

修改完成后,通过服务方式启动发现还是报错:

 而这种错误通过haproxy check检测不出,证明启动脚本和配置文件不存在错误,但配置文件中有文件路径配置错误。这里是配置文件中stats参数对应的文件路径配置错误,因为没有创建该目录和文件。于是注释掉该配置。

这里chroot和stats文件路径不对都是会报这个错的。 修改完成后再次启动,服务已经可以正常启动了:

当然,通过yum方式安装可以避免以上遇到的这些问题,但yum安装的版本一般都比较老,而我一般会选择较新的版本。如果有yum安装的haproxy,复制它的/etc/init.d/haproxy也可以,对所有软件都通用。

 总结:

1.二进制压缩包安装的haproxy不能通过服务方式启动。

2.要想通过服务启动haproxy需要将默认的启动脚本复制到/etc/init.d下并修改启动脚本中主程序路径和配置文件路径。

3.如果服务启动不了,都可以通过journalctl -xe查看具体问题,但只能查看最近启动服务的问题。

4.配置文件中参数的路径需要已经创建,不然启动会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值