我对 monit 有疑问,有时 Varnish 会崩溃并拒绝启动。所以 Varnish 死了,我的网络服务器无法访问。这是来自监控日志的消息:
info : 'varnish' stop: /etc/init.d/varnish
info : 'varnish' start: /etc/init.d/varnish
error : monit: Error reading pid from file '/var/run/varnish.pid'
在 Varnish 监视器中,我想设置一个重新启动 nginx 的选项,以便在发生类似情况时它可以再次侦听端口 80 上的外部请求:
if 3 restarts within 3 cycles
then exec "/etc/init.d/nginx restart"
and timeout
除了当我调用它时,有时 nginx 会成功停止......但永远不会再次启动。
我想到的解决方案有点像 hack (kill -9 nginx && /etc/init.d/nginx start) 和 (killall -9 varnishd && rm -f /var/run/varnish.pid)。
我希望任何人都可以对上述两个问题中的任何一个提出建议。谢谢!
永远不要使用 -9 但只有当你已经尝试过 -3 和 -15 时,它才会打开套接字,并且基本上应用程序没有机会自行清理。
您将永远与monit战斗;我不建议任何人将它用于任何事情。更健壮的架构类似于daemontools。
重新启动nginx时我遇到了类似的问题。我使用这样的东西:
它有效