Áú»¢¶Ä²©

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

10 Wykonywanie polece¨½

Áú»¢¶Ä²© wykorzystuje wsp¨®lne funkcje do zewn?trznych sprawdze¨½, parametr¨®w u?ytkownika, element¨®w system.run, niestandardowych skrypt¨®w alert¨®w, polece¨½ zdalnych i globalnych skrypt¨®w.

Kroki wykonania

Domy?lnie wszystkie skrypty w Áú»¢¶Ä²© s? wykonywane za pomoc? pow?oki sh, i niemo?liwe jest zmodyfikowanie domy?lnej pow?oki. Aby skorzysta? z innej pow?oki, mo?esz u?y? obej?cia: utw¨®rz plik ze skryptem i wywo?aj ten skrypt podczas wykonywania polecenia.

Polecenie/skrypt jest wykonywane w podobny spos¨®b zar¨®wno na platformach Unix, jak i Windows:

  1. Áú»¢¶Ä²© (proces nadrz?dny) tworzy potok do komunikacji
  2. Áú»¢¶Ä²© ustawia potok jako wyj?cie dla tworzonego procesu potomnego
  3. Áú»¢¶Ä²© tworzy proces potomny (uruchamia polecenie/skrypt)
  4. Tworzona jest nowa grupa proces¨®w (w Unixie) lub zadanie (w systemie Windows) dla procesu potomnego
  5. Áú»¢¶Ä²© czyta z potoku do momentu wyst?pienia limitu czasowego lub braku zapis¨®w na drugim ko¨½cu (WSZYSTKIE uchwyty/desktyptory plik¨®w zosta?y zamkni?te). Zauwa?, ?e proces potomny mo?e tworzy? wi?cej proces¨®w i zako¨½czy? dzia?anie przed ich zako¨½czeniem lub zamkni?ciem uchwytu/deskyptor¨®w pliku.
  6. Je?li limit czasowy nie zosta? osi?gni?ty, Áú»¢¶Ä²© czeka, a? pocz?tkowy proces potomny zako¨½czy dzia?anie lub up?ynie limit czasowy
  7. Je?li pocz?tkowy proces potomny zako¨½czy? dzia?anie, a limit czasowy nie zosta? osi?gni?ty, Áú»¢¶Ä²© sprawdza kod wyj?cia pocz?tkowego procesu potomnego i por¨®wnuje go z 0 (warto?? niezerowa jest uwa?ana za niepowodzenie wykonania, tylko dla niestandardowych skrypt¨®w alert¨®w, polece¨½ zdalnych i skrypt¨®w u?ytkownika wykonywanych na serwerze Áú»¢¶Ä²© i na proxy Áú»¢¶Ä²©)
  8. W tym momencie zak?ada si?, ?e wszystko zosta?o zako¨½czone, a ca?e drzewo proces¨®w (tj. grupa proces¨®w lub zadanie) jest zamykane

Áú»¢¶Ä²© zak?ada, ?e polecenie/skrypt zosta?o zako¨½czone, gdy pocz?tkowy proces potomny zosta? zako¨½czony I ?aden inny proces nie trzyma nadal otwartego uchwytu/deskryptora pliku wyj?ciowego. Gdy przetwarzanie zostanie zako¨½czone, WSZYSTKIE utworzone procesy s? zamykane.

Wszystkie podw¨®jne cudzys?owy i uko?niki w poleceniu s? poprzedzone uko?nikami i polecenie jest umieszczone w podw¨®jnych cudzys?owach.

Sprawdzanie kodu wyj?cia

Kod wyj?cia jest sprawdzany zgodnie z nast?puj?cymi warunkami:

  • Tylko dla niestandardowych skrypt¨®w alert¨®w, polece¨½ zdalnych i skrypt¨®w u?ytkownika wykonywanych na serwerze Áú»¢¶Ä²© i na proxy Áú»¢¶Ä²©.
  • Ka?dy kod wyj?cia r¨®?ny od 0 jest uwa?any za niepowodzenie wykonania.
  • Zawarto?? standardowego b??du i standardowego wyj?cia dla nieudanych wykona¨½ jest gromadzona i dost?pna w interfejsie (gdzie jest wy?wietlony wynik wykonania).
  • Dodatkowy wpis logu jest tworzony dla polece¨½ zdalnych na serwerze Áú»¢¶Ä²©, aby zapisa? wynik wykonania skryptu i mo?na go w??czy? za pomoc? parametru LogRemoteCommands agenta.

Mo?liwe komunikaty w interfejsie i wpisy dziennika dla nieudanych polece¨½/skrypt¨®w:

  • Zawarto?? standardowego b??du i standardowego wyj?cia dla nieudanych wykonan (je?li wyst?puj?).
  • "Proces zako¨½czony kodem: N." (dla pustego wyj?cia i kodu wyj?cia r¨®?nego od 0).
  • "Proces zatrzymany przez sygna?: N." (dla procesu zatrzymanego przez sygna?, tylko na systemach Linux).
  • "Proces zako¨½czony niespodziewanie." (dla procesu zako¨½czonego z nieznanych przyczyn).

Zobacz tak?e