【问题标题】:ssh wait for script to finishssh 等待脚本完成
【发布时间】:2015-12-12 09:26:23
【问题描述】:

我正在使用以下脚本在节点上启动进程。 从主节点:

for dir  in  n9 n18 n27 n40
do

node=compute-2-10

ssh $node "cd $dir ; nohup ./process.sh >  WATCHDOG-$dir &"

done

问题是,当我连接到 compute-2-10 时,我看不到任何作业正在运行。我认为问题在于该过程无法完成,因为 bash 不会等待它完成。这是正确的还是我需要做其他事情?

【问题讨论】:

  • 如果省略 & 会发生什么? ssh 阻塞等待 process.sh 完成,还是 process.sh 快速完成并允许 ssh 完成?

标签: bash ssh nodes rocks


【解决方案1】:

我一直在使用类似的东西

ssh $node "nohup myprogram > prog.out 2> prog.err < /dev/null &"

如果您重定向所有三个 I/O,那么这不会造成任何问题。

【讨论】:

  • 以上一直对我有用,请尝试以下操作: ssh $node "/bin/bash -c 'nohup ./kl.sh > prg.out 2> prg.err dev/null &'" 你也可以尝试运行一个只有 sleep 和 1 echo 在无限 while 循环中的脚本。而不是你现有的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多