This is a translation of the original English documentation page. Help us make it better.

9 Извршење команде

Zabbix користи уобичајену функционалност за спољне провере, корисничке параметре, system.run ставке, прилагођене скрипте упозорења, удаљене команде и глобално скрипте.

Кораци извршавања

Подразумевано, сви скриптови у Zabbix-у се извршавају помоћу sh шкољке и није могуће изменити подразумевану шкољку. Да бисте користили другачију љуску, можете користити заобилазно решење: креирајте датотеку скрипте и позовите ту скрипту током извршавања команде.

Команда/скрипта се извршава слично и на Unix и на Windows платформама:

  1. Zabbix (родитељски процес) креира цевовод за комуникацију
  2. Zabbix поставља цевовод као излаз за креирани подређени процес
  3. Zabbix креира подређени процес (покреће команду/скрипту)
  4. Нова група процеса (у Unix) или задатак (у Windows) се креира за подређени процес
  5. Zabbix чита из цеви док не истекне време или нико не пише на други крај (СВИ дескриптори датотека/датотечни дескриптори су затворени). Имајте на уму да подређени процес може да креира више процеса и да се изађе пре него што изађу или затворе дескриптор датотеке.
  6. Ако време чекања није достигнуто, Забикс чека док се почетни подређени процес не заврши или док не истекне време чекања
  7. Ако је почетни подређени процес изашао и време чекања није достигнуто, Zabbix проверава излазни код почетног подређеног процеса и упоређује га са 0 (вредност која није нула сматра се неуспешним извршавањем, само за прилагођене скрипте упозорења, удаљене команде и корисничке скрипте извршене на Zabbix серверу и Zabbix проксију)
  8. У овом тренутку се претпоставља да је све завршено и да је целокупно стабло процеса (тј. група процеса или посао) завршено

Zabbix претпоставља да је команда/скрипта завршила обраду када је почетни подређени процес изашао И ниједан други процес више не држи излазни дескриптор/дескриптор датотеке отвореним. Када се обрада заврши, СВИ креирани процеси се завршавају.

Сви двоструки наводници и обрнуте косе црте у команди се избегавају обрнутим косим цртама и команда је затворена у двоструке наводнике.

Излаз из провере кода

Излазни код се проверава под следећим условима:

  • Само за прилагођене скрипте упозорења, удаљене команде и корисничке скрипте извршава се на Zabbix серверу и Zabbix прокси серверу.
  • Сваки излазни код који се разликује од 0 сматра се извршењем неуспех.
  • Садржај стандардне грешке и стандардни излаз за неуспела извршења су прикупљени и доступни у корисничком интерфејсу (где је резултат извршења приказано).
  • Додатни унос дневника може бити креиран за удаљене команде које се извршавају на Zabbix агенту/проксију омогућавањем параметра LogRemoteCommands на агент/proxy.

Могуће поруке корисничког интерфејса и уносе у дневник за неуспеле команде/скрипте:

  • Садржај стандардне грешке и стандардни излаз за неуспела извршења (ако их има).
  • "Процес је изашао са кодом: N." (за празан излаз, а излазни код не једнако 0).
  • "Процес прекинут сигналом: N." (за процес који је прекинут сигналом, само на Linux-у).
  • "Процес је неочекивано прекинут." (за процес прекинут за непознати разлози).

Погледајте такође