首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R CMD批处理script.R,通过fabric run()执行永不退出

R CMD批处理script.R,通过fabric run()执行永不退出
EN

Stack Overflow用户
提问于 2016-01-13 17:11:38
回答 1查看 117关注 0票数 0

我已经用boto编写了一个fabric脚本来在AWS实例上安装一个R应用程序。软呢帽23

所有使用run & sudo函数的命令都按预期执行,

除了这个:

代码语言:javascript
复制
@parallel
def install_DvD():
#       with settings(hide('warnings', 'running', 'stdout', 'stderr'), warn_only=True):
             cmd0 = 'R CMD BATCH %s/DvDdependencies.R' % (DvDpackage_location)
             run(cmd0)

正如您所注意到的,我尝试使用‘warn=true’,但这并没有帮助。安装成功完成,没有出现错误,我通过登录到实例并监视DvDdependencies.Rout文件来手动检查。我认为由于一些原因,R批处理命令不会将执行返回到fabric。

来自Ctrl^c的跟踪输出在我的本地系统上的织物过程是:

代码语言:javascript
复制
[ec2-54-172-154-181.compute-1.amazonaws.com] run: R CMD BATCH ~/DvDdependencies.R
[ec2-54-165-109-62.compute-1.amazonaws.com] run: R CMD BATCH ~/DvDdependencies.R


^C
Stopped.
!!! Parallel execution exception under host u'ec2-54-165-109-62.compute-1.amazonaws.com':
!!! Parallel execution exception under host u'ec2-54-172-154-181.compute-1.amazonaws.com':
Process ec2-54-172-154-181.compute-1.amazonaws.com:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
Process ec2-54-165-109-62.compute-1.amazonaws.com:
    self._target(*self._args, **self._kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 242, in inner
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    submit(task.run(*args, **kwargs))
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 174, in run
    return self.wrapped(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/decorators.py", line 181, in inner
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 242, in inner
    return func(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/fabfile.py", line 70, in install_DvD
    run(cmd0)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/network.py", line 649, in host_prompting_wrapper
    submit(task.run(*args, **kwargs))
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/tasks.py", line 174, in run
    return self.wrapped(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/decorators.py", line 181, in inner
    return func(*args, **kwargs)
    return func(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 1056, in run
  File "/home/eyebell/local_bin/healX/DvD-installation/fabfile.py", line 70, in install_DvD
    run(cmd0)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/network.py", line 649, in host_prompting_wrapper
    return func(*args, **kwargs)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 1056, in run
    shell_escape=shell_escape)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 925, in _run_command
    stderr=stderr, timeout=timeout)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 811, in _execute
    time.sleep(ssh.io_sleep)
KeyboardInterrupt
    shell_escape=shell_escape)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 925, in _run_command
    stderr=stderr, timeout=timeout)
  File "/home/eyebell/local_bin/healX/DvD-installation/py2fabvirt/lib/python2.7/site-packages/fabric/operations.py", line 811, in _execute
    time.sleep(ssh.io_sleep)
KeyboardInterrupt

完整的脚本在我的github回购中,DvDdependencies.R的位置(我想安装的脚本)。

任何正确方向的评论、帮助或指示都将受到欢迎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-15 07:26:34

我要结束这个问题,因为问题只是这个脚本。此外,DvD工具的安装方法已经更新,因此这已经不再有意义了。

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

https://stackoverflow.com/questions/34772866

复制
相关文章

相似问题

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