8 Выполнение команд
Zabbix использует единый функционал для выполнения пользовательских параметров, удаленных команд, элементов данных system.run[] без флага "nowait", скриптов (оповещений, внешних и глобальных) и для некоторых внутренних команд. Команда/скрипт выполняется одинаково как на UNIX, так и на Windows платформах:
- Zabbix (родительский процесс) создает канал связи
- Zabbix устанавливает этот канал для выходных данных от созданного дочернего процесса
- Zabbix создает дочерний процесс (выполняет команду/скрипт)
- Новая группа процесса (в UNIX) или задача (в Windows) создается для дочернего процесса
- Zabbix читает из канала до момента выхода времени ожидания или до момента пока запись не будет прекращена (ВСЕ обработчики/файловые дескрипторы были закрыты). Обратите внимание, что дочерний процесс может создать большее количество процессов и выйти до того, как эти процессы завершатся или будет закрыт обработчик/файловый дескриптор.
- Если время ожидания еще не превышено, Zabbix ждет до момента завершения первоначального дочернего процесса или до момента превышения времени ожидания
- На этот момент подразумевается, что всё сделано и всё дерево процессов (т.е. группа процесса или задача) были завершены
Пожалуйста, обратите внимание, что Zabbix предполагает, что команда/скрипт завершили обработку, когда завершился изначальный дочерний процесс И никакие другие процессы не оставили открытым обработчика/файловый дескриптор. Когда обработка завершена, ВСЕ созданные процессы завершаются.
Смотрите более подробную информацию о пользовательских параметрах, удаленных командах, скриптах оповещения.
Все двойные кавычки и обратная косая черта в команде экранируются обратной косой чертой и вся команда заключается в двойные кавычки.