我正在尝试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.jb51.cc/bash/387248.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。