2016-11-18 9 views
0

내 무언가 코딩에서 나는 service httpd status (서비스가 runngin인지 아닌지)와 같은 서비스의 상태를 알고 싶습니다. 결과는 변수에 저장됩니다. 해당 상태를 사용하여 나는 다른 코드를 사용할 것입니다.안전 상태에서 서비스 상태를 어떻게 알 수 있습니까?

서비스 모듈을 사용할 때 상태에 대한 옵션이 없습니다. 내가 쉘 모듈을 사용하는 경우 내가이 경고

[WARNING]: Consider using service module rather than running service

그래서 서비스 상태를 얻기 위해 수행하는 모든 다른 모듈있어?

답변

3

아니요, 서비스 상태를 가져올 표준 모듈이 없습니다.

그러나 당신은 당신이 무엇을하고 있는지 알고있는 경우 특정 command 작업에 대한 경고를 억제 할 수

- command: service httpd status 
    args: 
    warn: false 

내가 얼마 전에이 트릭에 대한 빠른 note을 게시했습니다.

+0

httpd 서비스가 잘 작동 시작 :

내가 편집 한 파일입니다. 서비스가 중지되면 오류가 발생합니다. – SSN

+0

'service' 명령어가 0이 아닌 종료 코드로 종료되면'failed_when : false'로 처리해야합니다. –

0

희망적으로 service: allow user to query service status #3316이 곧 코어 모듈에 병합됩니다.

당신은 ansible 2.2.0.0을 사용하여이 diff to system/service.py

여기 내 사랑하는를 사용하여 손으로 패치 할 수 있습니다. 내 맥/homebrew이 설치를 실행하고 나를 위해 작동합니다. /usr/local/Cellar/ansible/2.2.0.0_2/libexec/lib/python2.7/site-packages/ansible/modules/core/system/service.py 여기

@@ -36,11 +36,12 @@ 
     - Name of the service. 
    state: 
     required: false 
-  choices: [ started, stopped, restarted, reloaded ] 
+  choices: [ started, stopped, status, restarted, reloaded ] 
     description: 
      - C(started)/C(stopped) are idempotent actions that will not run 
-   commands unless necessary. C(restarted) will always bounce the 
-   service. C(reloaded) will always reload. B(At least one of state 
+   commands unless necessary. C(status) would report the status of 
+   the service C(restarted) will always bounce the service. 
+   C(reloaded) will always reload. B(At least one of state 
      and enabled are required.) 
    sleep: 
     required: false 
@@ -1455,7 +1456,7 @@ 
    module = AnsibleModule(
     argument_spec = dict(
      name = dict(required=True), 
-   state = dict(choices=['running', 'started', 'stopped', 'restarted', 'reloaded']), 
+   state = dict(choices=['running', 'started', 'stopped', 'status', 'restarted', 'reloaded']), 
      sleep = dict(required=False, type='int', default=None), 
      pattern = dict(required=False, default=None), 
      enabled = dict(type='bool'), 
@@ -1501,6 +1502,9 @@ 
    else: 
     service.get_service_status() 

+ if module.params['state'] == 'status': 
+  module.exit_json(state=service.running) 
+ 
    # Calculate if request will change service state 
    service.check_service_changed()