加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 如何使用ssh在后台运行命令并分离会话

发布时间:2020-12-15 19:04:49 所属栏目:安全 来源:网络整理
导读:我正在尝试ssh到远程计算机并运行脚本,然后让节点运行脚本.以下是我的脚本.但是,当它运行时,脚本在计算机上成功运行,但ssh会话挂起.有什么问题? ssh -x $username@$node 'rm -rf statuslist mkdir statuslist chmod u+x ~/monitor/concat.sh chmod u+x ~/mo
我正在尝试ssh到远程计算机并运行脚本,然后让节点运行脚本.以下是我的脚本.但是,当它运行时,脚本在计算机上成功运行,但ssh会话挂起.有什么问题?
ssh -x $username@$node 'rm -rf statuslist
                        mkdir statuslist
                        chmod u+x ~/monitor/concat.sh
                        chmod u+x ~/monitor/script.sh
                        nohup ./monitor/concat.sh &
                        exit;'
在某些情况下,您希望在远程计算机/服务器上执行/启动某些脚本(将自动终止)并断开与服务器的连接.

例如:在执行时在框上运行的脚本

>获取模型并将其复制到远程服务器
>创建一个脚本,用于使用模型运行模拟并将其推送到服务器
>在服务器上启动脚本并断开连接
>因此启动脚本的任务是在服务器中运行模拟,一旦完成(将需要数天才能完成)将结果复制回客户端.

我会使用以下命令:

ssh remoteserver 'nohup /path/to/script `</dev/null` >nohup.out 2>&1 &'

@CKeven,您可以将所有这些命令放在一个脚本上,将其推送到远程服务器并按如下方式启动它:

echo '#!/bin/bash  
rm -rf statuslist  
mkdir statuslist  
chmod u+x ~/monitor/concat.sh  
chmod u+x ~/monitor/script.sh  
nohup ./monitor/concat.sh &  
' > script.sh

chmod u+x script.sh

rsync -azvp script.sh remotehost:/tmp

ssh remotehost '/tmp/script.sh `</dev/null` >nohup.out 2>&1 &'

希望这有效;-)

编辑:
你也可以使用
ssh user @ host’screen -S SessionName -d -m“/ path / to / executable”’

这会创建一个分离的屏幕会话并在其中运行目标命令

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读