問題的上下文:
因爲生產沒法使用 jenkins 發佈,因此採用 ch.ethz.ssh2 或叫 ganymed-ssh2 的開源 java 的 ssh api 進行遠程發佈。
在發起重啓時,遠程執行 nohup 命令:java
nohup java -jar taiping-$project-3.jar --spring.profiles.active=prod >> nohup.out &
發現代碼執行了,可是項目並無實際啓動。spring
網上說是 ganymed-ssh2 不能使用 nohup命令,這是有誤導的。問題本質是ganymed-ssh2 遠程方式登錄 ssh, 在執行以上命令時 java -jar 命令系統不認。api
解決辦法,使用絕對路徑:ssh
nohup /home/loginuser/java/jdk1.8.0_131/bin/java -jar taiping-$project-3.jar --spring.profiles.active=prod >> nohup.out &