2017-10-18 1 views
0

주어진 프로세스가 호스트 시스템에서 실행 중인지 확인하는 작은 플레이 북을 작성했습니다.프로세스가 실행 중인지 확인합니다.

- name: checking process running for clients and start process when not 
    service: 
    name: marketaccess {{ item.key|lower }} -vi 
    state: started 
    register: process 
    with_dict: "{{ customers }}" 

다음과 사전의 item.key = 브로드 웨이와 I 확인하려고 프로세스가되면 같이 다음과 같이 난이 쓴

enter image description here

을하지만이 각 본을 실행할 때 보고 된 오류는 다음과 같습니다

은 브로드 웨이 -vi 요청 된 서비스 marketacces를 찾을 수 없습니다 : 호스트

누군가 내가 뭘 잘못하고 있는지 볼 수 있습니까?

+0

[** 코드 또는 오류의 이미지를 게시하지 마십시오! **] (https://meta.stackoverflow.com/q/303812/995714) 이미지 스크린 샷 게시물에 좋은 보탬이 될 수 있습니다, 그러나 게시물이 여전히 명확하고 유용하지 않은지 확인하십시오. 코드 이미지 나 오류 메시지를 게시하는 경우 실제 코드/메시지를 직접 복사하여 붙여 넣거나 입력하십시오. – Rob

답변

0

누군가 내가 뭘 잘못하고 있는지 볼 수 있습니까?

Service은 컴퓨팅에서 process과 같지 않습니다.

책임있는 프로세스를 관리/확인할 모듈이 없습니다. shell 모듈에 질문에 포함 된 명령을 사용하고 (this에주의) 결과를 등록하고 프로세스를 시작하는 작업을 실행할 수 있습니다.

그러나 marketaccess이 실제로 서비스이거나 다른 서비스가 자식 프로세스를 만드는 경우도 마찬가지입니다. 말할 방법이 없습니다. 소프트웨어 설명서를 참조하십시오.

service module에 인수를 제공하면 arguments 매개 변수로 사용할 수 있습니다.

+0

Hi techraf, 서비스가 아닌 실행중인 프로세스를 확인하는 모듈이 있는지 알고 있습니까? –

+0

조언 해 주셔서 감사합니다. –

0

"ps -ef"출력은 서버간에 (적어도 내 경우에는) 달라 지므로 pgrep을 사용했습니다.

- name: "Get process PID" 
    shell: > 
    echo -n 
    $(pgrep {{ item.binary_name }}) 
    args: 
    executable: "{{ shell_path }}" 
    register: my_procs 
관련 문제