gpt4 book ai didi

c - 使用 system() 执行 shell 脚本返回 256。这是什么意思?

转载 作者:IT王子 更新时间:2023-10-29 00:22:28 26 4
gpt4 key购买 nike

我编写了一个 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 运行。

有什么提示吗?

最佳答案

根据 thisthat , Perl 的 system() 返回乘以 256 的退出值。所以它实际上以 1 退出。好像this happens in C too .

关于c - 使用 system() 执行 shell 脚本返回 256。这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736320/

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