首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程服务器上的Shell脚本终止ssh会话

远程服务器上的Shell脚本终止ssh会话
EN

Stack Overflow用户
提问于 2021-06-28 15:51:29
回答 1查看 58关注 0票数 0

我有一个由一些供应商编写的shell脚本,并在引擎盖下做了许多低级的东西,我没有领域特定的知识。我有一个由供应商提供的手册,如何在CLI上手动执行此脚本。如果在CLI上执行,它将按预期工作。

现在,我编写了一个脚本来自动执行此过程,但是脚本的ssh会话将在脚本完成时突然终止,并且ssh会话中脚本之后的远程命令将不会执行。只有来自ssh会话的本地命令才会继续。

代码语言:javascript
复制
echo "LOCAL: start"
sshpass -p ${PSSWD} timeout 45 ssh -n -q -oConnectTimeout=10 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null user@$ip '( 

function executeFlash(){
    echo "remote: executeFlash: start" 
    flash.sh 
    echo "remote: executeFlash: end" 

}

echo "REMOTE: start"
cp flashrom /usr/sbin/
cp libftdi1.so.2 /usr/lib64/
executeFlash
echo "REMOTE: end"

)'
echo "LOCAL: end"

输出为

代码语言:javascript
复制
LOCAL: start
REMOTE: start
remote: executeFlash: start
some logs showing the successful execution of flash.sh
      --- missing remote command for "remote: executeFlash: end" and "REMOTE: end"
LOCAL: end

如上所示,会话似乎已终止,其余远程命令未执行" remote : executeFlash: end“我曾尝试在flash.sh &或./flash.sh之类的子进程中调用该脚本,但没有成功。在CLI中手动执行期间,我不会丢失预期行为的ssh会话

EN

回答 1

Stack Overflow用户

发布于 2021-06-29 10:42:47

从ssh命令中删除“timeout45”后,问题得到了解决

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68159535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档