gpt4 book ai didi

shell - 如何使用 ssh 在后台运行命令并分离 session

转载 作者:行者123 更新时间:2023-12-03 12:04:04 31 4
gpt4 key购买 nike

我目前正在尝试通过 ssh 连接到远程机器并运行脚本,然后在运行脚本的情况下离开节点。下面是我的脚本。但是,当它运行时,脚本在机器上成功运行但 ssh session 挂起。有什么问题?

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"'

    它创建一个分离的屏幕 session 并在其中运行目标命令

    关于shell - 如何使用 ssh 在后台运行命令并分离 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628204/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com