【发布时间】:2011-04-13 18:34:00
【问题描述】:
我编写了一个 shell 脚本来软重启 HAProxy(反向代理)。从 shell 执行脚本有效。但我想要一个守护进程来执行脚本。那是行不通的。 system() 返回 256。我不知道这可能意味着什么。
#!/bin/sh
# save previous state
mv /home/haproxy/haproxy.cfg /home/haproxy/haproxy.cfg.old
mv /var/run/haproxy.pid /var/run/haproxy.pid.old
cp /tmp/haproxy.cfg.new /home/haproxy/haproxy.cfg
kill -TTOU $(cat /var/run/haproxy.pid.old)
if haproxy -p /var/run/haproxy.pid -f /home/haproxy/haproxy.cfg; then
kill -USR1 $(cat /var/run/haproxy.pid.old)
rm -f /var/run/haproxy.pid.old
exit 1
else
kill -TTIN $(cat /var/run/haproxy.pid.old)
rm -f /var/run/haproxy.pid
mv /var/run/haproxy.pid.old /var/run/haproxy.pid
mv /home/haproxy/haproxy.cfg /home/haproxy/haproxy.cfg.err
mv /home/haproxy/haproxy.cfg.old /home/haproxy/haproxy.cfg
exit 0
fi
HAProxy 使用用户 haproxy 执行。我的守护进程也有它自己的用户。两者都使用 sudo 运行。
有什么提示吗?
【问题讨论】: