繁体   English   中英

“monit restart <service> “我怎么知道什么时候重启?

[英]“monit restart <service>” how do I know when it's done restarting?

我们的sysadmin最近切换到使用monit,所以现在当我想重新启动服务时,我应该使用“monit restart <servicename>”而不是“/etc/init.d/ <servicename> restart”。

但是,monit命令在成功时不会产生任何输出并立即返回。 看起来直到下一个周期之后它才真正重启。

我正在重新启动服务,因为我对它进行了更改。 我不想测试我对旧实例的更改。 所以我需要知道重启完成的时间。 当我告诉它时,我也希望它重新启动,而不是当它转向它时。 在我等待的时候,我不喜欢一遍又一遍地输入“ps aux | grep <myservicename>”。

有没有办法让monit立即重启我的服务?

有没有办法让monit,或者monit的包装器阻塞,直到重启完成?

有没有办法让monit告诉我重启成功,否则它失败了?

Monit是一个非常安静的计划! 事实上,monit命令往往会立即运行和退出,因为它们在后台运行! 所以......如果你想看看Monit正在做什么,请使用-v开关,如果你想让它在前台运行,请使用tail -f日志文件和-I

同步重启

使用-I选项

monit -I restart servicename

这将禁用后台重启,例如计算机启动时需要重启!

如果要诊断问题,请添加详细选项-v

monit -Iv restart servicename

状态检查

要检查结果,您可以尝试以下几种方法:

1)monit的返回值

monit -I restart servicename
echo $?

通常, $? 成功时应为零,否则为非零。 但是没有计划支持它,并没有对任何信息手册页什么是退出状态( $?monit 尝试测试一下。

2)使用statussummary命令

monit -I status

要么

monit -I status servicename

要么

monit -I summary

这些命令将返回输出的状态。 您可以选择最适合您的命令并解析其输出。 或者,如第1点),检查返回值$? (在联机帮助页中没有提到)。

人们可以通过运行monit唤醒monit deamon。 这应该有助于减少等待下一个周期。

执行tail -f monit.log以查看重启是否成功或是否失败。

你可以随时使用这样的东西

while test -f pidfile.pid && kill -0 $(cat pidfile.pid);
do 
  sleep 1; 
done;

while ! kill -0 $(cat pidfile.pid); 
do 
  sleep 1; 
done

此脚本在重新启动进程时等待。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM