Áú»¢¶Ä²©

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

10 Ex¨¦cution de commande

Áú»¢¶Ä²© utilise des fonctionnalit¨¦s communes pour les v¨¦rifications externes, les ±è²¹°ù²¹³¾¨¨³Ù°ù±ðs utilisateur, les ¨¦l¨¦ments system.run, les scripts d'alerte personnalis¨¦s, les commandes ¨¤ distance et les scripts utilisateur.

?tapes d'ex¨¦cution

La commande/script est ex¨¦cut¨¦e de mani¨¨re similaire sur les plates-formes Unix et Windows :

  1. Áú»¢¶Ä²© (le processus parent) cr¨¦e un canal de communication
  2. Áú»¢¶Ä²© d¨¦finit le canal comme sortie du processus enfant ¨¤ cr¨¦er
  3. Áú»¢¶Ä²© cr¨¦e le processus enfant (ex¨¦cute la commande/script)
  4. Un nouveau groupe de processus (sous Unix) ou un job (sous Windows) est cr¨¦¨¦ pour le processus enfant.
  5. Áú»¢¶Ä²© lit depuis le canal jusqu¡¯¨¤ expiration du d¨¦lai ou jusqu¡¯¨¤ ce que personne n¡¯¨¦crive ¨¤ l¡¯autre extr¨¦mit¨¦ (TOUS les descripteurs/descripteurs de fichiers ont ¨¦t¨¦ ferm¨¦s). Notez que le processus enfant peut cr¨¦er plusieurs processus et se terminer avant qu'ils ne quittent ou ne ferment le descripteur/descripteur de fichier.
  6. Si le d¨¦lai d'attente n'a pas ¨¦t¨¦ atteint, Áú»¢¶Ä²© attend que le processus enfant initial se termine ou que le d¨¦lai d'attente se soit ¨¦coul¨¦.
  7. Si le processus enfant initial s'est termin¨¦ et que le d¨¦lai n'a pas ¨¦t¨¦ d¨¦pass¨¦, Áú»¢¶Ä²© v¨¦rifie le code de sortie du processus enfant initial et le compare ¨¤ 0 (une valeur non nulle est consid¨¦r¨¦e comme un ¨¦chec d'ex¨¦cution, uniquement pour les scripts d'alerte personnalis¨¦s, les commandes ¨¤ distances et les scripts utilisateurs ex¨¦cut¨¦s sur le serveur Áú»¢¶Ä²© et le proxy Áú»¢¶Ä²©)
  8. ? ce stade, on suppose que tout est termin¨¦ et que tout l¡¯arbre de processus (c¡¯est-¨¤-dire le groupe de processus ou le job) est termin¨¦.

Áú»¢¶Ä²© suppose qu'une commande/script a ¨¦t¨¦ trait¨¦ lorsque le processus enfant initial s'est termin¨¦ ET qu'aucun autre processus ne conserve toujours le descripteur de sortie/descripteur de fichier ouvert. Lorsque le traitement est termin¨¦, TOUS les processus cr¨¦¨¦s sont termin¨¦s.

Touts les guillemets doubles et les barres obliques inverses de la commande sont ¨¦chapp¨¦s avec des barres obliques inverses et la commande est plac¨¦e entre guillemets.

V¨¦rification du code de sortie

Les codes de sortie sont v¨¦rifi¨¦s avec les conditions suivantes :

  • Uniquement pour les scripts d'alerte personnalis¨¦s, les commandes ¨¤ distance et les scripts utilisateur ex¨¦cut¨¦s sur le serveur Áú»¢¶Ä²© et le proxy Áú»¢¶Ä²©.
  • Tout code de sortie diff¨¦rent de 0 est consid¨¦r¨¦ comme un ¨¦chec d'ex¨¦cution.
  • Le contenu de l'erreur standard et de la sortie standard pour les ex¨¦cutions ayant ¨¦chou¨¦ est collect¨¦ et disponible dans l'interface (o¨´ le r¨¦sultat de l'ex¨¦cution est affich¨¦).
  • Une entr¨¦e de journal suppl¨¦mentaire est cr¨¦¨¦e pour les commandes ¨¤ distance sur le serveur Áú»¢¶Ä²© afin de sauvegarder les r¨¦sultats de l'ex¨¦cution du script. Elle peut ¨ºtre activ¨¦e ¨¤ l'aide du ±è²¹°ù²¹³¾¨¨³Ù°ù±ð d'agent LogRemoteCommands.

Messages possibles de l'interface web et entr¨¦es du journal pour les commandes/scripts ayant ¨¦chou¨¦es :

  • Contenu de l'erreur standard et de la sortie standard pour les ex¨¦cutions ayant ¨¦chou¨¦ (le cas ¨¦ch¨¦ant).
  • "Process exited with code: N." (pour une sortie vide et un code de sortie diff¨¦rent de 0).
  • "Process killed by signal: N." (pour le processus termin¨¦ par un signal, sous Linux uniquement).
  • "Process terminated unexpectedly." (pour le processus s'est arr¨ºt¨¦ pour des raisons inconnues).

En savoir plus sur :

See also