Команда из консоли не запускается при запуске из sshj - PullRequest
0 голосов
/ 05 октября 2018

Я запускаю jar с консоли, и он работает нормально:

nohup /usr/bin/java -jar payara-micro-5.183.jar myapp.war > log.out 2>&1 & echo $!

Когда я запускаю ту же команду с удаленного компьютера с sshj, он возвращает pid, но процесс может 'не будет видно в консоли, и на самом деле процесс не запускается.В обоих случаях я регистрируюсь через открытый ключ ssh с одним и тем же пользователем.

Код, запускающий команду через sshj:

try (Session session = sshClient.startSession()) {
    final Command cmd = session.exec("nohup /usr/bin/java -jar payara-micro-5.183.jar myapp.war > log.out 2>&1 & echo $!");
    String response = (IOUtils.readFully(cmd.getInputStream()).toString());
    // response shows a pid number
    cmd.join(2, TimeUnit.SECONDS);
    System.out.println("\n** exit status: " + cmd.getExitStatus());
    //exit status is 0
} 

1 Ответ

0 голосов
/ 05 октября 2018

Решение:

  • С предыдущей командой у меня было cd в каталоге, где находится банка.

  • , но этоcp не устраняет необходимость использовать полные пути для файлов, используемых в командах, запускаемых после

...