2014-09-04 91 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

相關問題