我正在尝试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;'
在某些情况下,您希望在远程计算机/服务器上执行/启动某些脚本(将自动终止)并断开与服务器的连接.
原文链接:https://www.f2er.com/bash/387248.html例如:在执行时在框上运行的脚本
>获取模型并将其复制到远程服务器
>创建一个脚本,用于使用模型运行模拟并将其推送到服务器
>在服务器上启动脚本并断开连接
>因此启动脚本的任务是在服务器中运行模拟,一旦完成(将需要数天才能完成)将结果复制回客户端.
我会使用以下命令:
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”’
这会创建一个分离的屏幕会话并在其中运行目标命令