【发布时间】:2016-08-23 15:22:47
【问题描述】:
我们使用 udeploy 进行频繁的部署,并且我们有一个 shell 脚本来重新启动 apache http 服务器作为最后一个任务。 脚本很简单:-
cd bin_path
sudo ./apachectl -k stop
sleep 5
sudo ./apachectl start
这里的问题是有时停止命令需要超过 5 秒,这将导致启动失败并显示“服务器已运行”消息。启动失败后,停止将完成,从而使服务器停机。 因此寻找更好的解决方案,以确保在执行启动之前完全停止服务器。
【问题讨论】:
-
sudo ./apachectl start; while [ $? -ne 0 ]; do sudo ./apachectl start; sleep 1; done -
你的意思是在停止后我应该使用那个 sleep 5 然后启动,然后使用 while [ $? -ne 0 ] 然后下一行开始,最后 sleep 1....对吗?
-
表示只要启动脚本的退出状态不为0,它就会尝试启动服务器。我会在中间添加一个sleep,否则它可能会尝试多次运行它:)
-
感谢您的解决方案。我肯定会尝试这个,但我会请求您以格式化文本发布此脚本,以便我可以完全使用它。我承认我是 shell 脚本的新手,不会直接在我的服务器上尝试一些东西。我不知道你想在中间的哪个位置使用那个睡眠。:)
-
要么我没看到,要么 bishop 已经添加了它,所以无论如何,没关系。使用粘贴的整行 bishop ;)
标签: apache shell unix ibmhttpserver udeploy