exec

Запускает программы без использования оболочки

Описание exec

exec запускает программы без использования оболочки. Вывод запущенной программы может быть перенаправлен в лог. Для запуска скриптов используйте в качестве исполняемого файла соответствующий интерпретатор. Например для запуска скрипта D:\temp\script.cmd параметр executable должен быть "C:\\Windows\\System32\\cmd.exe", а programArgs должен быть ["/c", "D:\\temp\\script.cmd"].

Параметры файла конфигурации для действия

Параметры должны быть указаны в файле конфигурации для действия, в ключе launcherPrms, например:

"launcherPrms": {
    "executable": ".\\procdump.exe",
    "timeout": 60000
},

Описание параметров

  • executable - полный или абсолютный путь до файла или файл, который требуется запустить. Если полный путь не указан, то выполняемый файл ищется в каталоге с действием Alepiz, в котором используется launcher.
  • host - имя или IP адрес хоста, на котором необходимо выполнить программу. У пользователя, из под которого запускается сервис ALEPIZ должны быть права на удаленный запуск программ. Если не указан, то 127.0.0.1 Для запуска программы на удаленном хосте используется команда:
  • powershell.exe Invoke-Command -ComputerName <host> <executable> <programArgs>
  • cwd - рабочий каталог, в который будет осуществлен переход перед запуском программы. Может быть указан абсолютный путь относительно корневого каталога Alepiz. Если не указан, то это корневой каталог Alepiz.
  • programArgs - параметры командной строки (строка с параметрами, строка с массивом в JSON или массив). Если используется строка с параметрами и в параметре (например, в имени файла) есть пробелы, соответствующий параметр необходимо заключить в кавычки. Например, -ExecutionPolicy Bypass -File "powershell script.ps1"
  • timeout - максимальное время выполнения executable в миллисекундах. Если не указан, то бесконечно.
  • stdinData - если указано, то значение этого параметра будет передано на stdin запускаемой программы
  • env - переменные среди и их значения в виде объекта, {<ENV_NAME1>: <VALUE1>, ....}. Если не указано, то используется переменные среды с которыми запущен Alepiz
  • dontLogStdout - (true|false) не выводить в лог данные из потока stdout
  • dontLogStderr - (true|false) не выводить в лог данные из потока stderr
  • returnStdout - (true|false) вернуть данные из потока stdout
  • returnStderr - (true|false) вернуть данные из потока stderr
  • returnCode - (true|false) вернуть exit code
  • encodingFrom - кодировка символов в выводе командной оболочки. Если не указан, то 'cp866'
  • encodingTo - кодировка символов в выводе в лог ALEPIZ. Если не указан, то 'utf8'
  • dontSplitOutput - не разбивать вывод STDIN и STDERR на отдельные строки в логе в случае, если программа вернет данные одним блоком
  • windowsVerbatimArguments - Корректная обработка кавычек для аргументов командной строки в Windows. По умолчанию true.

Возвращаемые параметры

Лаунчер возвращает объект. В зависимости от установки параметров returnStdout, returnStderr, returnCode объект может содержать stdout, stderr, exit code процесса

{
    "stdout": ,
    "stderr": ,
    "exitCode": 
}

Параметры, передаваемые из пользовательского интерфейса

Если указаны соответствующие параметры в конфигурационном файле действия, параметры, переданные из пользовательского интерфейса будут проигнорированы. Можно использовать параметры cwd, stdinData, programArgs. Параметры полностью аналогичны параметрам из файла конфигурации для действия. Для передачи параметров из пользовательского интерфейса необходимо создать элементы HTML типа input с аттрибутом name или id соответствующем названию параметра. Например, <input type="hidden" id="programArgs" value="[\"-a 1\", \"-b 2\", \"-c\"]"> или <input type="text" name=cwd value="C:\\windows">