场景
- 服务器A:CentOS_A,假如IP:1.1.1.1
- 服务器B:CentOS_B,假如IP:2.2.2.2 要在服务器B上远程执行存放在服务器A上的test.sh脚本 假如test.sh内容如下
#! /bin/bash
echo "测试"
nohup java -jar springboot.jar &
nohup挂起,这个命令在我们操作的机器上,一般执行完之后Ctrl C退出,但是放到脚本里面,或者远程直接执行该命令之后会一直停留,不会退出
解决
将命令修改以下
代码语言:javascript复制nohup java -jar springboot.jar >/dev/null 2>&1 &
注
服务器之间如何进行免密,见文章:CentOS服务器之间免密登陆及传输
情况一
在服务器A远程执行服务器B上的test.sh脚本命令,一定要是绝对路径
代码语言:javascript复制ssh root@2.2.2.2 "sh /root/test.sh"
情况二
在服务器A操作存放在服务器A的test.sh脚本内容,执行test.sh到服务器B,test.sh的路径也是要绝对路径
代码语言:javascript复制ssh root@2.2.2.2 < /root/test.sh
ps:不过在经测试的时候有个问题,测试情况一的时候,并不会执行nohup这条命令,目前也不知道为什么
参考:https://blog.csdn.net/oneinmore/article/details/50073443