1

Я пытаюсь подключить SSH к удаленной машине и запустить файл .ksh на этой машине, чтобы запустить программу на Java.

Если SSH в машину с помощью инструмента, как Putty, и выполните эту команду:

cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName

Программа на Java проходит полный курс, отправляя некоторые данные, помещая их во внешнюю базу данных и отображая ответ. Тем не менее, если я попытаюсь подключиться к компьютеру по SSH из командной строки на другом компьютере, примерно так:

/usr/bin/ssh root@xxx.xx.xxx.xx.x "cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName;"

Программа не выполняется полностью. Это не дает мне никаких ошибок, но просто возвращает уведомление о том, что файлы классов были успешно загружены, отображается первая строка Java-программы, затем она завершает работу без отправки запроса или получения ответа.

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

2 ответа2

0

Ваша оболочка завершает работу до завершения выполнения команды java и уничтожает все подчиненные процессы. Вам нужно либо переписать ваш скрипт так, чтобы он ждал завершения java-программы, либо переписать его, чтобы процессы выжили после выхода.

0

Проблема заключалась в том, что я случайно включил точку с запятой после "methodName" в команду SSH. Мне интересно, что это запустило приложение, отобразило первую строку, а затем вышло без каких-либо сообщений об ошибках!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .