2014-09-04 2 views
1

끝없는 스크립트를 실행하고 원격 노드에서만 출력을보고 싶습니다. 그게 가능하니?스크립트를 실행하고 원격 노드에 해당 출력을 표시하십시오.

어쩌면 STH 같은 :

--- 
- 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 

그러나 원격 VM에 최고 명령 스크립트가 나는 또한 주변에 연주

실행 시작되었음을 보여주고 있지만,이 새로운 화면 세션을 개방하지 않습니다 -d -m -x와 같은 다른 화면 옵션도 있습니다.

답변

0

나중에 상태를 확인할 수 있도록 화면에서 장시간 실행되는 셸 스크립트를 시작하는 작업이 있습니다. 다음은 내가 정의한 방법입니다 :

- 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 

편집 :이 명령이 수행하는 모든 작업은 백그라운드에서 명령을 실행하는 것입니다. 이 경우 명령은 다음과 같습니다 나는 "czapp"라는 이름의 사용자로이 쉘 스크립트를 실행하는 데 필요한 내 특정 경우

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

, sudo는의 따라서 내 사용. 당신은 당신의 명령에 대해 동일한 기본 접근법을 사용할 수 있어야합니다. 귀하의 경우에 당신은 아마 이런 걸하고 싶지 : "-d -m"당신이 분리 모드에서 시작을 말하고있다으로 화면을 호출하여

- 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 

을, 그래서 새 화면 세션은 지정된 실행이 만들어집니다 명령과 통제는 즉각적으로 다시 Anipal에게 되돌려진다.

+0

상기 명령에 대한 설명을 게시 할 수 있습니까? – Khan

관련 문제