Ansible: отсоединить от выполнения bat-файла [duplicate]

Вы можете использовать функцию substring с положительным pos, чтобы взять слева:

import org.apache.spark.sql.functions.substring

substring(column, 0, 1)

и отрицательный pos, чтобы взять справа:

substring(column, -1, 1)
0
задан user1429322 1 September 2016 в 17:38
поделиться

1 ответ

Это сложно сделать в выпущенных в настоящее время версиях Ansible. Даже если вам удалось выполнить задание с помощью raw: (что возможно при некоторых обходах), WinRM не позволит команде завершить работу до тех пор, пока все процессы не выйдут (WinRM запускает все под объектом задания Windows). Вы должны уйти от работы.

Ansible 2.2 будет иметь async, win_shell и win_command, но async в настоящее время не подходит, поскольку он оставляет работу сторожевого таймера, которая будет убивать дочерний процесс после async Истекло время ожидания. Я тестировал вариант «отколовшегося» для команды / оболочки, который позволит вам делать то, что вы хотите (не уверен, что он будет готов к прайм-тайму с помощью замораживания модуля 2.2).

Если вы действительно используете службу, я предлагаю настроить ее как службу Windows (либо напрямую, через sc, либо используя что-то вроде NSSM).

Если это no-go, вы можете запускать фоновые процессы в текущей версии Ansible (если вам не нужен доступ к stdin / stdout / stderr запущенного процесса) через raw: и WMI, как это:

raw: ([wmiclass]"Win32_Process").Create("myprocess.exe /option1 /option2")

1
ответ дан nitzmahone 17 August 2018 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: