Cmd скрипт, возвращающий ненулевой код, ansible получает нулевой код - PullRequest
0 голосов
/ 09 октября 2019

Я запускаю сценарий .bat на сервере, который просто проверяет, запущена служба или нет, что-то вроде этого:

nssm.exe start MyService
for /F "tokens=3 delims=: " %%H in ('sc query "MyService" ^| findstr "STATE"') do (
  if /I "%%H" NEQ "RUNNING" (
      exit /b 1
  ) else (
      exit /b 0
  )
)

Этот файл .bat вызывается этим ответом:

- name: Start service
  win_command: StartService.bat
  args:
     chdir: "C:\temp"
  register: result
  failed_when: result.rc != 0

Но я всегда получаю код ошибки 0, если он не работает или успешно. Если я запускаю скрипт вручную и проверяю %errorlevel%, он всегда показывает правильный ..

1 Ответ

0 голосов
/ 09 октября 2019

Перешли на эту версию:

nssm.exe start MyService
sc query "MyService" | findstr /I "RUNNING"
exit /b %errorlevel%
...