等待服务完成启动的shell命令是什么?
- 论坛
- 等待服务完成启动的shell命令是什么?
9 浏览
匿名的
0 Comments
很不幸,这个命令并不存在。sc命令可以启动和停止服务,并且可以查询服务的状态(参见这个回答)。但是即使在查询时,你只会得到“服务正在运行”,没有办法知道服务启动的进度如何。
有两种解决方法:
- 等待一段时间
- 在循环中运行一个简单的SQL命令
第一种方法可以有所帮助,但并不能完全解决问题;当服务器负载较重时,启动时间可能会更长。
对于第二种方法,使用一个有超时机制的循环(伪代码):
- 将计数器设置为X
- 尝试连接
- 如果连接成功,则退出并返回成功
- 减少计数器的值
- 如果计数器小于等于0 -> 报错
- 休眠1秒
- 返回第2步
为了提高安全性,你还可以在其中添加一个sc query命令,以确保服务未失败。