【发布时间】:2014-05-11 14:20:09
【问题描述】:
我要做什么: 我正在尝试使用 ssh 在远程机器上执行几个 bash 命令,我希望这些命令即使在执行过程中关闭 ssh-session 后也能完成执行。
到目前为止我做了什么: 我正在使用Putty连接到ssh(使用putty的原因之一是一台机器是windows,远程机器是mac-os,我需要一些方法来通过Python命令启动ssh)。我正在传递 command.txt 文件,它包含我要执行的所有命令。
putty -ssh start-ts@ip.000.001.101 -m command.txt ( not real ip)
command.txt:看起来像这样:
export PATH=$PATH:/usr/local/bin
echo $PATH; sleep 1
tmux -c 'queue.sh'
sleep 100
连接到 ssh 后,为了确保我的脚本/命令即使在另一台机器上关闭 ssh-session 后也能继续在远程机器上运行,我正在使用 'tmux'
但问题是: 即使在使用 tmux 之后,由 queue.sh 调用的进程也会在我关闭 ssh-session 时终止。
我也试过了
export PATH=$PATH:/usr/local/bin
echo $PATH; sleep 1
tmux
queue.sh
sleep 100
做同样的事情。
我也尝试过: 如果我只是使用 ssh 传递以下命令(在 command.txt 中)
export PATH=$PATH:/usr/local/bin
echo $PATH; sleep 1
tmux
然后在 tmux 终端中手动输入 queue.sh,这样我就可以关闭 ssh-terminal 并且远程机器继续执行进程。
有什么建议吗? 我希望能够通过脚本文件传递所有内容并保持进程在远程机器(mac-os)上运行,即使在另一台机器上关闭 ssh-session 之后也是如此。
谢谢
【问题讨论】: