2014-09-04 92 views
1

我想运行一个没有结束的脚本,并且只想查看远程节点上的输出。那可能吗 ?运行脚本并在远程节点上显示其输出

也许某事像:

--- 
- hosts: server 
    gather_facts: False 

    tasks: 
    - name: Run runserver.sh and save the output of script 
    shell: screen -dRR bash /home/dell/tester_server_2/runserver.sh 
    async: 99999999999 
    poll: 0 

但这不是开辟了新的屏幕会话,但在远程虚拟机上命令显示脚本已开始运行

我也发挥各地其他屏幕选项以及如-d -m -x等

回答

0

我有一个可靠的任务,可以从屏幕内启动一个长时间运行的shell脚本,以便以后可以检查其状态。下面是我如何定义它:

- name: Invoke do-grails reset -solr 
    command: /usr/bin/screen -d -m sudo -u czapp /usr/local/bin/do-grails.sh -i -y reset -solr 
    async: 60 
    poll: 0 

编辑:所有此命令正在执行的是调用屏幕在后台运行命令。在这种情况下的命令是:

sudo -u czapp /usr/local/bin/do-grails.sh -i -y reset -solr 

在我的具体情况我需要运行这个shell脚本为一个名为“czapp”用户,因此我使用sudo的的。你应该能够为你的命令使用相同的基本方法。在你的情况,你可能想要做这样的事情:

- name: Run runserver.sh and save the output of script 
    command: /usr/bin/screen -d -m /home/dell/tester_server_2/runserver.sh 
    async: 60 
    poll: 0 

通过调用屏幕“-d -m”你告诉它分离模式启动,那么一个新的屏幕会话创建运行指定命令和控制立即返回给Ansible。

+0

您可以发表一个说明该命令的解释吗? – Khan 2014-09-07 20:06:30

相关问题