问题的上下文:
由于生产无法使用 jenkins 发布,所以采用 ch.ethz.ssh2 或叫 ganymed-ssh2 的开源 java 的 ssh api 进行远程发布。
在发起重启时,远程执行 nohup 命令:
nohup java -jar taiping-$project-.jar --spring.profiles.active=prod >> nohup.out &
发现代码执行了,但是项目并没有实际启动。
网上说是 ganymed-ssh2 不能使用 nohup命令,这是有误导的。问题本质是ganymed-ssh2 远程方式登陆 ssh, 在执行以上命令时 java -jar 命令系统不认。
解决办法,使用绝对路径:
nohup /home/loginuser/java/jdk1..0_131/bin/java -jar taiping-$project-.jar --spring.profiles.active=prod >> nohup.out &