Я запускаю 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
}