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

前端之家收集整理的这篇文章主要介绍了shell – 如何使用ssh在后台运行命令并分离会话前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试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”’

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

原文链接:https://www.f2er.com/bash/387248.html

猜你在找的Bash相关文章