gpt4 book ai didi

haproxy - 如何为 runit 自定义重启脚本?

转载 作者:行者123 更新时间:2023-12-01 23:44:53 24 4
gpt4 key购买 nike

我正在使用 runit 来管理 HAProxy,并希望安全重启以重新加载配置文件(特别是:haproxy -f/etc/haproxy/haproxy.cfg -sf $OLD_PROCESS_ID) .我认为我可以运行 sv restart haproxy 并尝试添加一个名为 /etc/service/haproxy/restart 的自定义脚本,但它似乎从未执行过。我怎么有一个特殊的重启脚本?我的方法在这里还好吗?如何使用 runit 以最小的影响重新加载我的配置?

最佳答案

HAProxy 运行服务脚本

/etc/service/haproxy/run

#!/bin/sh
#
# runit haproxy
#

# forward stderr to stdout for use with runit svlogd
exec 2>&1

PID_PATH=/var/run/haproxy/haproxy.pid
BIN_PATH=/opt/haproxy/sbin/haproxy
CFG_PATH=/opt/haproxy/etc/haproxy.cfg

exec /bin/bash <<EOF
$BIN_PATH -f $CFG_PATH -D -p $PID_PATH

trap "echo SIGHUP caught; $BIN_PATH -f $CFG_PATH -D -p $PID_PATH -sf \\\$(cat $PID_PATH)" SIGHUP
trap "echo SIGTERM caught; kill -TERM \\\$(cat $PID_PATH) && exit 0" SIGTERM SIGINT

while true; do # Iterate to keep job running.
sleep 1 # Wake up to handle signals
done
EOF

优雅的重新加载让一切正常运行。

sv reload haproxy

完全停止和开始。

sv restart haproxy

此解决方案的灵感来自 https://gist.github.com/gfrey/8472007

关于haproxy - 如何为 runit 自定义重启脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29871019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com