gpt4 book ai didi

monit 坚持让运行良好的程序超时

转载 作者:行者123 更新时间:2023-12-02 09:29:55 28 4
gpt4 key购买 nike

我在使用 monit 监视程序时遇到问题。

我在树莓派上运行它,从源代码构建了 monit 5.11;我尝试使用存储库中的版本,但它是 5.4,并且不支持下面我想要的一些语法。

我正在尝试遵循“问:我有一个程序不创建自己的 pid 文件。由于 monit 要求所有程序都有 pid 文件,我该怎么办?” entry in the FAQ .

这是我的 start_sensors.sh 脚本(它只运行我的 python 程序,而不是wiki 示例中的 java 程序):

#!/bin/bash

case $1 in
start)
echo $$ > /var/run/start_sensors.pid;
exec 2>&1 /usr/bin/python /home/pi/temperature/post_temps.py 1>/tmp/post_temps.out
;;
stop)
kill `cat /var/run/start_sensors.pid` ;;
*)
echo "usage: start_sensors {start|stop}" ;;
esac
exit 0

这是我的 /etc/monit/monitrc 条目:

# Run temperature sensor monitor
check process start_sensors.sh with pidfile /var/run/start_sensors.pid
start = "/home/pi/temperature/start_sensors.sh start"
stop = "/home/pi/temperature/start_sensors.sh stop"

监控日志中的输出如下所示:

[EST Jan 24 14:21:16] info     : 'raspberrypi' Monit reloaded
[EST Jan 24 14:21:16] error : 'start_sensors.sh' process is not running
[EST Jan 24 14:21:16] info : 'start_sensors.sh' trying to restart
[EST Jan 24 14:21:16] info : 'start_sensors.sh' start: /home/pi/temperature/start_sensors. sh
[EST Jan 24 14:21:46] error : 'start_sensors.sh' failed to start (exit status -1) -- Program /home/pi/temperature/start_sensors.sh timed out

正如你所看到的,monit 启动了程序,它运行良好,然后 monit 在三十秒后由于“超时”而杀死了它。

我的程序运行良好,并产生正确的输出我要发送到/tmp/post_temps.out 文件。

我不明白为什么 monit 使程序超时...它应该是一个长时间运行的进程!

我尝试更改 start_sensors.sh 脚本,以便将程序置于后台(并让它编写自己的/var/run/start_sensors.pid 文件),但随后 monit 每三十次启动一个新实例大约几秒钟,不停止旧的,并覆盖 pid 文件。就好像它根本不看 pid 文件一样。

谢谢!

最佳答案

以下作品:

#!/bin/bash

case $1 in
start)
/usr/bin/python /home/pi/temperature/post_temps.py 1>/tmp/post_temps.out &
echo $! > /var/run/start_sensors.pid ;
;;
stop)
kill `cat /var/run/start_sensors.pid` ;;
*)
echo "usage: start_sensors {start|stop}" ;;
esac
exit 0

关于monit 坚持让运行良好的程序超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28129457/

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