Как определить, когда соединение ssh (через QProcess) завершено?

Я запускаю ssh-туннель из приложения, использующегоQProcess:

QProcess* process = new QProcess();
process->start("ssh", QStringList()<<"-L"<<"27017:localhost:27017"<<"example.com");

Пока все работает отлично, единственная проблема в том, что у меня нет возможности увидеть, когда порт был фактически создан.

Когда я запускаю команду в оболочке, подключение к удаленному хосту занимает около 10 секунд, после чего перенаправленный порт готов к использованию. Как я могу обнаружить это из моего приложения?

РЕДАКТИРОВАТЬ:

Как предположил vahancho, я использовал тот факт, что после подключения на терминале есть некоторый выход, который можно использовать для обнаружения успешного подключения. Тем не менее, есть линия, которая запускается сразу после запускаPseudo-terminal will not be allocated because stdin is not a terminalчто, вероятно, даст ложную тревогу. Правильный вывод доступен во втором сигнале, излучаемом чуть позже (который является истинным индикатором открытия порта). Чтобы избавиться от первого сообщения, я сейчас запускаю ssh, используяssh -t -t заставить распределение stdin.

Итак, остается только один вопрос: может ли кто-нибудь помочь мне, не беспокоясь о таком подходе?

Ответы на вопрос(2)

Ваш ответ на вопрос