Выполнить процесс после SSH на бродячем сервере - PullRequest
0 голосов
/ 09 ноября 2018

Используя Java-класс, я пытаюсь запустить бродячий сервер, а затем выполнить скрипт Python, который находится внутри виртуальной коробки (бродяга). Причина, по которой я делаю это таким образом, заключается в том, что мне нужно создавать интеграционные / автоматизированные тесты, которые существуют в проекте, но вне основной базы кода (чтобы мои тесты не запускались в prod). Мне нужно будет отправить пользовательские данные API и веб-служб, а затем запустить приложение через скрипт python для проверки сценариев тестирования.

На данный момент, когда я пытаюсь выполнить последнюю команду, скрипт python, через процесс или сборщик процессов, я получаю следующее:

vagrant up - отлично работает vagrant ssh - отлично работает скрипт Python - ошибка: java.io.IOException: Невозможно запустить «скрипт» программы: ошибка = 2, нет такого файла или каталога

Мой код:

public static void launchCommandlineProcess(String command, String arg) {
    String line = null;
    ProcessBuilder processBuilder = new ProcessBuilder();
    Process process = null;
    try {
        System.out.println("Executing command line process...");
        process = processBuilder.command(command, arg).start();
        try {
            InputStreamReader inputStreamReader = new 
    InputStreamReader(process.getInputStream());
            final BufferedReader reader = new 
    BufferedReader(inputStreamReader);
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            reader.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    catch (Exception e) {
        e.printStackTrace();
    }
    finally {
        process.destroy();
        System.out.println("Destroyed processes");
    }
}

После того, как я зашёл на сервер vagrant / virtual box, я не могу выполнить скрипт python. Я пытался найти что-то в этом духе перед публикацией, но не смог найти ничего полезного.

Любой совет?

Я пытался использовать process.Runtime.getRuntime.exec (), а также компоновщик процессов. Я попытался поместить свои команды в массив String и выполнить их все подряд. Я попытался создать новый процесс в том же методе, который выполняет скрипт Python сразу после выполнения ssh и до того, как процесс ssh будет уничтожен. Неудачно.

Любой совет с благодарностью. Спасибо.

Примечание. Эти команды отлично работают с терминала, вне кода Java.

...