我目前有一个詹金斯(Jenkins)工作,可以成功完成以下任务:
1:检查git repo中是否有新提交✓
2:克隆存储库✓
3:用Maven构建回购罐✓
4:将SCP罐子连接到远程服务器✓
第五步是运行jar,我目前正在做类似的事情:
nohup ssh user@remotehost "java -jar some.jar" > /dev/null 2>&1
从技术上讲,它可以运行jar,但是jenkins的工作尚未完成,我认为它正在等待退出代码。
我希望实现的是,通过ssh向远程服务器发送命令,而无需等待响应或输出。我不确定是否可行,是否有更好的方法?
答案 0 :(得分:1)
您可以尝试使用screen
命令:
screen -d -m ssh user@remote "java -jar -Dserver.port=9090 ~/jar.jar"
摘自手册:
-d -m在“分离”模式下启动屏幕。这将创建一个新会话,但不会附加到该会话。这对于系统启动脚本很有用。