最近需要用keepalived+redis,搭建redis主从高可用服务,新入手keepalived,照着网上的教程一步步搭起了,但是到最后启动keepalived服务的时候,死活起不来,网上也找了好多文章,费了我一天也没解决问题,最后终于人品爆发,找到了问题所在,keepalived的启动脚本有问题!!
如下:
问题1:在ubuntu下,source function library的位置需要重新设置,改为/lib/lsb/init-functions
问题2:一般刚开始会提示找不到daemon,这里需要apt-get install daemon,然后再次启动就会报错,输入journalctl -ex会提示:$Starting keepalived: daemon: option requires an argument -- 'D' ,这个命令是有问题的,其中的-D本来是给keepalived用的,但这样组合后被认为是daemon命令的参数。这会导致服务不能启动。 如果不修改,会提示启动失败,但却不输出具体信息。但可以通过查看 /var/log/syslog 找到错误信息
$Starting keepalived: daemon: option requires an argument -- 'D' 。这是一个底层错误,所以只在系统日志里看到。
执行 daemon --help, 可以看到帮助信息
可以看出, daemon命令的-D参数是需要一个path参数的,所以会出现系统日志里的错误。
由 usage: daemon [options] [--] [cm arg...],可知正确的命令格式应该是:daemon -- keepalived -D
所以上面力中标示的第2处,应该修改为 daemon -- keepalived ${KEEPALIVED_OPTIONS}
注意:每次修改/etc/init.d/keepalived后,需要重新运行 systemctl daemon-reload 重新加载服务脚本
OK,再次启动服务。
systemctl daemon-reload #重新加载服务
service keepalived start #启动keealived服务
service keepalived status #可以查看运行状态
ip addr show
网友评论