我需要在虚拟机上运行一些远程命令进行测试。但机器启动需要的时间是可变的。我不想使用任意长的睡眠来等待与它对话。那么我该怎么做远程告诉什么时候完成启动?
答案1
该虚拟机在什么虚拟机管理程序上运行?
如果是 VMware,您可以使用 PowerCLI cmdlet 编写 powershell 脚本:Wait-Tools
https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/Wait-Tools.html
这将暂停处理,直到虚拟机响应 vmware-tools 正在运行。通常,您可以假设最多此时将可以使用此功能。为确保万无一失,您可以sleep
在满足此条件后添加计时。
如果您依赖于潜在服务,您可以(正如 EEAA 所提到的)编写一个 while 循环,在跳出循环之前检查条件是否为真(例如,某个服务正在运行)。