crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QProcess+запуск приложения через ssh+QTcpSocket
Lenymo
  опции профиля:
сообщение 20.7.2010, 21:39
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.6.2010
Пользователь №: 1812

Спасибо сказали: 1 раз(а)




Репутация:   0  


В главном потоке запускается удаленное приложение через ssh

...
QProcess *process = new QProcess;
process->start("ssh -T -i ~/.ssh/id_rsa_user user@remote-host ./remoteApp");
if (process->waitForStarted())
    emit newConnection("remote-host", 5000);
...


Дочерний поток по этому newConnection() коннектится к remoteApp
...
QTcpSocket *socket = new QTcpSocket;
socket->connectToHost(hostName, port);
if(socket->waitForConnected())
    qDebug() << "Failed to connect" << endl;
...


Однако, коннекта не происходит, приходит ошибка сокета "Connection refused", то есть приложение еще не запустилось. Видимо, waitForStarted() срабатывает на старт самого ssh. Вопрос - можно ли как-то отследить запуск собственно remoteApp? И еще - если запускать приложение из консоли, то оно стартует мгновенно, откуда задержка при запуске из программы?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Lenymo
  опции профиля:
сообщение 21.7.2010, 4:02
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.6.2010
Пользователь №: 1812

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата
process->waitForStarted() вернёт управление сразу, как только начнёт выполнятся соответствующая команда

Соответствующая чему? Если возврат из этой фукнции означает запуск удаленного приложения, почему тогда не получается к нему приконнектиться по TCP? А если после возврата из waitForStarted() поставить sleep(10), то коннект происходит успешно...

Цитата
Если хочется большей уверенности, можно попытаться ловит стандартный вывод команды

Сейчас так и делаю, но имхо это не есть удачное решение, хотелось бы обойтись waitForStarted(). К тому же, в случае локального, а не удаленного, запуска, все срабатывает на ура.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 9:48