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