我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
}
慕妹3146593
相关分类