Áú»¢¶Ä²©

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

10 Uitvoering van commando's

Áú»¢¶Ä²© maakt gebruik van gemeenschappelijke functionaliteit voor externe controles, gebruikersparameters, systeemuitvoer items, aangepaste waarschuwingsscripts, externe opdrachten en globale scripts.

Uitvoeringsstappen

Standaard worden alle scripts in Áú»¢¶Ä²© uitgevoerd met behulp van de sh-shell, en het is niet mogelijk om de standaardshell te wijzigen. Om een andere shell te gebruiken, kunt u een omweg toepassen: maak een scriptbestand en roep dat script aan tijdens de uitvoering van het commando.

Het commando/script wordt op vergelijkbare wijze uitgevoerd op zowel Unix- als Windows-platforms:

  1. Áú»¢¶Ä²© (het ouderproces) maakt een pijp voor communicatie.
  2. Áú»¢¶Ä²© stelt de pijp in als de uitvoer voor het te maken kindproces.
  3. Áú»¢¶Ä²© maakt het kindproces aan (voert het commando/script uit).
  4. Er wordt een nieuwe procesgroep (in Unix) of een taak (in Windows) gemaakt voor het kindproces.
  5. Áú»¢¶Ä²© leest uit de pijp totdat er een time-out optreedt of er aan de andere kant niet meer wordt geschreven (ALLE handvatten/bestandsdescriptoren zijn gesloten). Merk op dat het kindproces meer processen kan aanmaken en kan afsluiten voordat ze afsluiten of het handvat/bestandsdescriptor sluiten.
  6. Als de time-out niet is bereikt, wacht Áú»¢¶Ä²© tot het oorspronkelijke kindproces afsluit of er een time-out optreedt.
  7. Als het oorspronkelijke kindproces is afgesloten en de time-out niet is verstreken, controleert Áú»¢¶Ä²© de afsluitcode van het oorspronkelijke kindproces en vergelijkt deze met 0 (een niet-nulwaarde wordt beschouwd als een uitvoeringsfout, alleen voor aangepaste waarschuwingsscripts, externe opdrachten en gebruikersscripts die worden uitgevoerd op Áú»¢¶Ä²©-server en Áú»¢¶Ä²©-proxy).
  8. Op dit punt wordt aangenomen dat alles is voltooid en de gehele procesboom (d.w.z. de procesgroep of de taak) wordt be?indigd.

Áú»¢¶Ä²© gaat ervan uit dat een commando/script is voltooid wanneer het oorspronkelijke kindproces is afgesloten EN er geen andere processen zijn die het uitvoerhandvat/bestandsdescriptor nog openhouden. Wanneer verwerking is voltooid, worden ALLE aangemaakte processen be?indigd.

Alle dubbele aanhalingstekens en backslashes in het commando zijn ge?scaped met backslashes en het commando is ingesloten in dubbele aanhalingstekens.

Controle van exitcodes

Exitcodes worden gecontroleerd met de volgende voorwaarden:

  • Alleen voor aangepaste waarschuwingsscripts, externe opdrachten en gebruikersscripts die worden uitgevoerd op Áú»¢¶Ä²©-server en Áú»¢¶Ä²©-proxy.
  • Elke exitcode die afwijkt van 0 wordt beschouwd als een uitvoeringsfout.
  • Inhoud van standaardfout en standaarduitvoer voor mislukte uitvoeringen worden verzameld en zijn beschikbaar in de frontend (waar het uitvoeringsresultaat wordt weergegeven).
  • Er wordt een extra logboekvermelding gemaakt voor externe opdrachten op Áú»¢¶Ä²©-server om de uitvoer van het script op te slaan, en dit kan worden ingeschakeld met de LogRemoteCommands agent parameter.

Mogelijke frontendberichten en logboekvermeldingen voor mislukte opdrachten/scripts:

  • Inhoud van standaardfout en standaarduitvoer voor mislukte uitvoeringen (indien aanwezig).
  • "Proces is be?indigd met code: N." (voor lege uitvoer, en exitcode niet gelijk aan 0).
  • "Proces be?indigd door signaal: N." (voor proces be?indigd door een signaal, alleen op Linux).
  • "Proces onverwacht be?indigd." (voor proces be?indigd om onbekende redenen).

Lees meer over:

Zie ook