Мне нужно запустить несколько удаленных команд на виртуальной машине для тестирования. Но для запуска машины требуется разное время. Я не хочу использовать сколь угодно долгий сон для ожидания разговора с ним. Так как я могу удаленно скажи, когда это закончил запуск ?
На каком гипервизоре работает эта виртуальная машина?
Если это VMware, вы можете написать сценарий PowerShell с помощью командлета PowerCLI: Wait-Tools
https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/Wait-Tools.html
Это приостановит обработку, пока виртуальная машина не ответит, что vmware-tools запущены. Обычно можно предположить, что большинство функциональность будет доступна на этом этапе. Для большей уверенности вы можете добавить таймер sleep
после того, как это будет выполнено.
Если вы полагаетесь на скрытые службы, вы можете (как упоминалось в EEAA) написать цикл while, который проверяет, выполняется ли условие (например, работает определенная служба), прежде чем выйти из цикла.