8 Выполнение команд

Zabbix использует единый функционал для выполнения пользовательских параметров, удаленных команд, элементов данных system.run[] без флага "nowait", скриптов (оповещений, внешних и глобальных) и для некоторых внутренних команд. Команда/скрипт выполняется одинаково как на UNIX, так и на Windows платформах:

  1. Zabbix (родительский процесс) создает канал связи
  2. Zabbix устанавливает этот канал для выходных данных от созданного дочернего процесса
  3. Zabbix создает дочерний процесс (выполняет команду/скрипт)
  4. Новая группа процесса (в UNIX) или задача (в Windows) создается для дочернего процесса
  5. Zabbix читает из канала до момента выхода времени ожидания или до момента пока запись не будет прекращена (ВСЕ обработчики/файловые дескрипторы были закрыты). Обратите внимание, что дочерний процесс может создать большее количество процессов и выйти до того, как эти процессы завершатся или будет закрыт обработчик/файловый дескриптор.
  6. Если время ожидания еще не превышено, Zabbix ждет до момента завершения первоначального дочернего процесса или до момента превышения времени ожидания
  7. На этот момент подразумевается, что всё сделано и всё дерево процессов (т.е. группа процесса или задача) были завершены

Пожалуйста, обратите внимание, что Zabbix предполагает, что команда/скрипт завершили обработку, когда завершился изначальный дочерний процесс И никакие другие процессы не оставили открытым обработчика/файловый дескриптор. Когда обработка завершена, ВСЕ созданные процессы завершаются.

Все двойные кавычки и обратная косая черта в команде экранируются обратной косой чертой и вся команда заключается в двойные кавычки.