0

如果这是我完全错过的东西,请原谅我,但是,我有一个远程服务器(NAS),我想在其上启动一个命令运行,同时我在本地做一些工作。现在,我相信我可以使用如下命令来做到这一点:

ssh foo@bar 'cp -Rl /foo/bar /bar/foo'

但是,我需要在我的主脚本中从命令的一部分返回值,所以我需要它返回但保持cp命令运行。例如:

foo=$(ssh foo@bar <<- REMOTE_COMMANDS
    cp -Rl /foo/bar /bar/foo &
    echo "foobar"
REMOTE_COMMANDS)

但是我不相信在cp命令完成之前这会返回,但是如果我使用exit我认为它cp被中断了?

是否有另一种方法可以继续cp运行,或者我需要运行两个ssh命令(一个用于cp,一个用于获取我需要的返回值?)

4

2 回答 2

2

您可以使用以下选项之一:

  • 多路复用器
  • 诺哈普
  • 屏幕

tmux&screen是一些完整的环境,可以为1 到 N 个用户附加分离。

如果您需要简单的东西,nohup请先看。

于 2013-06-18T19:59:44.640 回答
1

您可以使用屏幕命令。只需使用 : 创建一个新屏幕screen -R screen_name。运行您的命令或代码,然后按ctrl + a + d退出该屏幕。如果要切换回屏幕,请输入此命令:screen -r screen_name。希望能帮助到你。

于 2013-06-18T20:00:36.487 回答