Obtenir des informations sur les processus avec le module os en Python

1. À propos des processus avec le module os

Lorsqu'un programme Python est exécuté, le système d'exploitation crée un processus chargé d'exécuter ce programme. Chaque processus possède différentes informations comme un identifiant, un processus parent et un environnement d'exécution.

Le module os de Python fournit plusieurs fonctions permettant d'obtenir des informations concernant le processus courant et son environnement.

Parmi les fonctions et attributs utiles, nous pouvons notamment citer os.getpid(), os.getppid(), os.name, os.getlogin(), os.uname() et os.environ. Certaines fonctions ne sont toutefois disponibles que sur certains systèmes d'exploitation.

Le programme suivant importe simplement le module os afin de pouvoir utiliser ses fonctions.

Sortie :

2. Obtenir l'identifiant du processus avec os.getpid()

Chaque processus exécuté par le système possède un numéro appelé PID, pour Process Identifier. Ce numéro permet au système d'identifier le processus de manière unique pendant son exécution.

La fonction os.getpid() permet de récupérer le PID du processus Python courant.

Sortie possible :

Le numéro obtenu varie d'une exécution à une autre, car le PID est attribué par le système d'exploitation lors du lancement du processus.

Nous pouvons également afficher directement l'identifiant sans utiliser de variable intermédiaire.

Sortie possible :

3. Obtenir l'identifiant du processus parent avec os.getppid()

Un processus peut avoir été lancé par un autre processus appelé processus parent. La fonction os.getppid() permet d'obtenir le PID du processus parent lorsque cette fonction est disponible sur le système utilisé.

Le programme suivant affiche le PID du programme Python ainsi que celui de son processus parent.

Sortie possible :

Lorsque Python est lancé depuis un terminal, un environnement de développement ou un autre programme, le processus parent correspond généralement au processus qui a lancé l'interpréteur Python.

4. Identifier le système avec os.name

L'attribut os.name indique la famille du système d'exploitation sur laquelle le programme Python est exécuté. Cette information est utile lorsqu'un programme doit adapter son comportement au système utilisé.

Le programme suivant affiche la valeur de os.name.

Sortie possible sous Windows :

Sous de nombreux systèmes de type Unix, notamment Linux et macOS, la valeur obtenue est généralement posix.

Nous pouvons utiliser cette information dans une condition afin de distinguer Windows des systèmes de type Unix.

Sortie possible sous Windows :

5. Obtenir les informations de connexion avec os.getlogin()

La fonction os.getlogin() permet d'obtenir le nom de l'utilisateur connecté au terminal contrôlant le processus lorsque cette information est disponible.

Le programme suivant tente d'afficher le nom obtenu avec os.getlogin().

Sortie possible :

Selon l'environnement dans lequel Python est exécuté, os.getlogin() peut ne pas fonctionner, notamment lorsque le processus ne possède pas de terminal de contrôle. Pour récupérer le nom d'utilisateur dans une application destinée à plusieurs environnements, d'autres solutions peuvent être plus appropriées.

6. Obtenir des informations avec os.uname()

Sur les systèmes qui la prennent en charge, la fonction os.uname() fournit plusieurs informations concernant le système sur lequel le processus Python est exécuté.

Le résultat contient notamment le nom du système, le nom de la machine, la version du système et des informations concernant l'architecture matérielle.

Sortie possible sous Linux :

Les différentes informations peuvent également être récupérées séparément à partir du résultat retourné par os.uname().

Sortie possible :

La fonction os.uname() n'est pas disponible nativement sous Windows. Pour écrire un programme portable permettant d'obtenir des informations détaillées sur le système, le module platform peut être utilisé.

7. Obtenir les identifiants utilisateur et groupe sous Unix

Sur les systèmes Unix, le module os fournit également des fonctions permettant d'obtenir les identifiants associés à l'utilisateur qui exécute le processus. La fonction os.getuid() retourne l'identifiant utilisateur, tandis que os.getgid() retourne l'identifiant du groupe.

Le programme suivant affiche ces deux informations sur un système Unix compatible.

Sortie possible :

Les valeurs UID et GID dépendent de la configuration du système. Ces fonctions ne sont pas disponibles sur toutes les plateformes, notamment sur les versions standards de Python sous Windows.

8. Obtenir les variables d'environnement du processus

Chaque processus possède un ensemble de variables d'environnement. Python permet d'y accéder avec os.environ. Ces variables peuvent contenir des informations sur les chemins, l'utilisateur, les dossiers temporaires ou la configuration d'une application.

Le programme suivant affiche la variable PATH disponible dans l'environnement du processus Python.

Sortie possible :

Nous pouvons également utiliser os.environ.get() pour lire une variable sans provoquer d'erreur lorsque celle-ci n'existe pas.

Sortie possible sous Windows :

Les noms et les valeurs des variables disponibles varient selon le système d'exploitation et l'environnement dans lequel le processus a été lancé.

9. Afficher plusieurs informations sur le processus courant

Nous pouvons combiner plusieurs fonctions du module os afin de construire un petit programme fournissant différentes informations concernant le processus Python courant.

Le programme suivant affiche le PID, le PID du processus parent, le type du système et le répertoire de travail courant.

Sortie possible sous Windows :

Nous pouvons rendre ce programme plus portable en vérifiant la disponibilité d'une fonction avec hasattr() avant de l'appeler.

Sortie possible sous Linux :

10. Résumé

Le module os permet d'obtenir plusieurs informations concernant le processus Python courant, son processus parent et son environnement d'exécution.

  • os.getpid() retourne le PID du processus Python courant.
  • os.getppid() retourne le PID du processus parent lorsqu'elle est disponible.
  • os.name indique la famille du système d'exploitation.
  • os.getlogin() peut fournir le nom de l'utilisateur associé au terminal de contrôle.
  • os.uname() fournit des informations détaillées sur le système lorsqu'elle est disponible.
  • os.getuid() et os.getgid() permettent d'obtenir les identifiants utilisateur et groupe sur les systèmes compatibles.
  • os.environ permet d'accéder aux variables d'environnement du processus.
  • os.getcwd() permet de connaître le répertoire de travail courant du processus.
  • Certaines fonctions du module os dépendent du système d'exploitation.

Le programme suivant résume les principales informations portables que nous pouvons facilement obtenir sur le processus Python courant.

Sortie possible :

 


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *