##一,初步java
#執行方式 ssh 192.168.2.103 " nohup java -jar /home/a/ipf/ight/feedback/ixxxedback-platform-1.0-SNAPSHOT.jar > out.file 2>&1 &" 執行完這邊當即斷開,日誌寫在指定文件。 參考文章: https://blog.csdn.net/oneinmore/article/details/50073443 示例: ssh target "./test.sh" # 等待命令完成後退出;本地Ctrl+C中斷ssh會話,不會中斷test.sh的執行(bash父進程變爲1)(與登陸終端執行命令而終端鏈接斷開時的行爲不同) ssh target "./test.sh &" # 等待命令完成後退出;本地Ctrl+C中斷ssh會話,不會中斷test.sh的執行(bash父進程原本就爲1) ssh target "nohup ./test.sh &" # 等待命令完成後退出;本地Ctrl+C中斷ssh會話,不會中斷test.sh的執行(bash父進程原本就爲1) ssh target "nohup ./test.sh >/dev/null 2>&1 &" # 啓動test.sh執行後就會退出(bash父進程原本就爲1) ssh target "./test.sh >/dev/null 2>&1 &" # 啓動test.sh執行後就會退出(bash父進程原本就爲1),這也代表ssh不退出與nohup命令自己沒有什麼關係
jenkins ssh遠程執行nohup Java 後沒法斷開
#問題 Jenkins exec 執行shell 腳本,遠程啓動jar 包後控制檯信息一直在轉圈,沒法正常退出。命令爲: ssh user@IP " source /etc/profile && nohup java -jar xxxxx.jar > `date +%m%d`-out.file 2>&1 &" 查看部署服務器服務啓動正常。 在Jenkins服務器上看進程 : ps -ef |grep jenkins 發現子進程沒法退出,便是執行啓動命令,如上。 手動殺死後,部署服務器沒有異常,說明nohup 沒有異常,只是ssh 執行後沒有退出。 su jenkins 進入後手動執行如上命令;沒有正常退出,去掉source /etc/profile 重試, 沒法正常啓動jar 包,應該是沒有環境變量。使用絕對路徑執行: ssh user@IP " nohup /path/to/bin/java -jar xxxxx.jar > `date +%m%d`-out.file 2>&1 &" 後成功,緣由是source 引發的,致使ssh 執行後沒法退出,具體原理不清楚。