[comment]: # translation:outdated

[comment]: # ({b398ca99-d53fbea3})
# 9 Komandu izpilde

Zabbix izmanto kopīgu funkcionalitāti ārējām pārbaudēm, lietotāja parametriem,
system.run vienumiem, pielāgotiem brīdinājumu skriptiem, attālinātām komandām un globālajiem
skriptiem.

[comment]: # ({/b398ca99-d53fbea3})

[comment]: # ({2e61fefc-a11705f0})
#### Izpildes soļi

:::noteclassic
Pēc noklusējuma visi skripti Zabbix tiek izpildīti, izmantojot *sh* čaulu,
un noklusējuma čaulu nav iespējams mainīt. Lai izmantotu citu čaulu,
var izmantot apiešanas risinājumu: izveidot skripta failu un komandas izpildes laikā izsaukt šo skriptu.
:::

Komanda/skripts tiek izpildīts līdzīgi gan Unix, gan Windows
platformās:

1.  Zabbix (vecākprocess) izveido kanālu saziņai
2.  Zabbix iestata šo kanālu kā izvadi izveidojamajam bērnprocesam
3.  Zabbix izveido bērnprocesu (palaiž komandu/skriptu)
4.  Bērnprocesam tiek izveidota jauna procesu grupa (Unix) vai uzdevums (Windows)
5.  Zabbix lasa no kanāla, līdz iestājas noildze vai arī neviens vairs neraksta
    otrā galā (visi turi/failu deskriptori ir aizvērti).
    Ņemiet vērā, ka bērnprocess var izveidot papildu procesus un beigt darbu
    pirms tie beidz darbu vai aizver turi/failu deskriptoru.
6.  Ja noildze vēl nav sasniegta, Zabbix gaida, līdz sākotnējais
    bērnprocess beidz darbu vai iestājas noildze
7.  Ja sākotnējais bērnprocess ir beidzis darbu un noildze vēl nav
    sasniegta, Zabbix pārbauda sākotnējā bērnprocesa izejas kodu un
    salīdzina to ar 0 (vērtība, kas nav nulle, tiek uzskatīta par izpildes kļūmi,
    tikai pielāgotajiem brīdinājumu skriptiem, attālinātajām komandām un lietotāju skriptiem,
    kas izpildīti uz Zabbix serveris un Zabbix starpniekserveris)
8.  Šajā brīdī tiek pieņemts, ka viss ir pabeigts un viss
    procesu koks (t.i., procesu grupa vai uzdevums) tiek pārtraukts

::: noteimportant
Zabbix pieņem, ka komanda/skripts ir pabeidzis
apstrādi, kad sākotnējais bērnprocess ir beidzis darbu UN neviens cits
process vairs netur atvērtu izvades turi/failu deskriptoru. Kad
apstrāde ir pabeigta, visi izveidotie procesi tiek pārtraukti.
:::

Visas dubultpēdiņas un atpakaļvērstās slīpsvītras komandā tiek ekrānētas ar
atpakaļvērstajām slīpsvītrām, un komanda tiek ietverta dubultpēdiņās.

[comment]: # ({/2e61fefc-a11705f0})

[comment]: # ({f466cd79-ddd381e9})
#### Izejas koda pārbaude

Izejas kodi tiek pārbaudīti saskaņā ar šādiem nosacījumiem:

-   Tikai pielāgotiem brīdinājumu skriptiem, attālinātām komandām un lietotāju skriptiem,
    kas tiek izpildīti Zabbix serverī un Zabbix starpniekserverī.
-   Jebkurš izejas kods, kas atšķiras no 0, tiek uzskatīts par izpildes
    kļūmi.
-   Neveiksmīgu izpildes reižu standarta kļūdu izvades un standarta izvades
    saturs tiek apkopots un ir pieejams lietotāja saskarnē (kur tiek
    parādīts izpildes rezultāts).
-   Papildu žurnāla ieraksts var tikt izveidots attālinātām komandām, kas izpildītas Zabbix aģentā/starpniekserverī,
    iespējojot parametru LogRemoteCommands [aģenta](/manual/appendix/config/zabbix_agentd#logremotecommands)/[starpniekservera](/manual/appendix/config/zabbix_proxy#logremotecommands) konfigurācijā.

Iespējamie ziņojumi lietotāja saskarnē un žurnāla ieraksti neveiksmīgām komandām/skriptiem:

-   Neveiksmīgu izpildes reižu standarta kļūdu izvades un standarta izvades
    saturs (ja tāds ir).
-   "Process exited with code: N." (ja izvade ir tukša un izejas kods nav
    vienāds ar 0).
-   "Process killed by signal: N." (ja procesu pārtrauc signāls,
    tikai Linux vidē).
-   "Process terminated unexpectedly." (ja process tiek pārtraukts
    nezināmu iemeslu dēļ).

[comment]: # ({/f466cd79-ddd381e9})

[comment]: # ({9bbf0e66-35a7f666})
#### Skatiet arī

-   [Ārējās pārbaudes](/manual/config/items/itemtypes/external#external-check-result)
-   [Lietotāja parametri](/manual/config/items/userparameters)
-   [system.run](/manual/config/items/itemtypes/zabbix_agent#system.run) vienumi
-   [Pielāgoti brīdinājumu skripti](/manual/config/notifications/media/script)
-   [Attālās komandas](/manual/config/notifications/action/operation/remote_command)
-   [Globālie skripti](/manual/web_interface/frontend_sections/alerts/scripts)

[comment]: # ({/9bbf0e66-35a7f666})
