我有一个Tcl脚本连接到在其他服务器上运行的mysql数据库。 现在,如果我重新启动其他服务器,脚本将终止。
在连接之前,有没有办法检查服务器或更好的mysql服务是否正在运行?
提前致谢
答案 0 :(得分:1)
检查是否有任何服务正在运行的方法是连接到它并要求它做一些微不足道的事情(通常是通过登录或做某种无操作)。如果失败,服务就会关闭,如果成功,你就可以使用连接(好吧,暂时)。
catch
命令可以捕获命令发出的问题。如果命令成功则给出0结果,如果命令失败则给出1结果。 (对于罕见情况,还有其他代码,例如return
,break
或continue
,它们通过使用特殊异常在Tcl中工作。您不应该从命令中获取这些代码来连接到DB!)因此,你可以这样做:
if {[catch {command-to-connect to-the-database}]} {
# It went wrong...
}
这一切都遵循要求宽恕而不是要求许可的一般原则。