gpt4 book ai didi

java - 从 sshj 启动时,来自控制台的命令不运行

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:25 26 4
gpt4 key购买 nike

我从控制台启动了一个 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
}

最佳答案

解决方法:

  • 使用之前的命令,我cd到 jar 所在的目录。

  • 但是这个 cp 并没有消除对在之后运行的命令中使用的文件使用完整路径的需要

关于java - 从 sshj 启动时,来自控制台的命令不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52662034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com