L1 informatique : Environnement informatique

TM n°3 : Les processus

  1. Ouvrez un terminal.
  2. Où se trouve le programme ps ?
  3. Où se trouve le programme pstree ?
  4. Les principaux répertoires qui contiennent les programmes pour tous les utilisateurs sont /bin et /usr/bin. Vérifiez que ces répertoires figurent bien dans la variable d'environnement $PATH.
  5. Quels sont les autres répertoires figurant dans le $PATH?
  6. Créez un répertoire et créez le script monScript.sh avec la commande
    echo -e '#!/bin/bash\necho Bonjour'>monScript.sh
    
    Rendez le script exécutable.
  7. Pourquoi ne peut-on pas lancer directement le script avec la commande monScript.sh et pourquoi doit-on écrire ./monScript.sh ?
  8. Quelle commande faut-il exécuter pour pouvoir lancer le script directement avec monScript.sh dans l'interpréteur de commandes (shell) courant ?
  9. Pourquoi . n'est-il pas mis dans $PATH dans la configuration par défaut ?
  10. Lancez le programme xcalc. Avez-vous toujours la main dans le terminal ?
  11. Pour retrouver la main, il faut tuer le programme xcalc. Faites-le en fermant la fenêtre.
  12. Relancez xcalc et tuez-le en tapant CTRL c dans le terminal.
  13. Pour avoir à la fois à disposition la calculatrice et le terminal, lancez la calculatrice en arrière plan avec xcalc &.
  14. Quels sont les pids de l'interpréteur de commandes bash et de la calculatrice ?
  15. Quel est le pid du processus parent de xcalc (ppid)?
  16. Tuez la calculatrice en utilisant la commande kill et le pid de xcalc.
  17. Si on a oublié de lancer un processus en arrière plan, on peut arrêter le processus en tapant CTRL z dans le terminal puis le relancer en arrière plan avec la commande bg. Essayez-le. Vérifiez bien que la calculatrice s'arrête après CTRL z et qu'elle fonctionne à nouveau après bg.
  18. Remettez la calculatrice en avant plan puis tuez la.
  19. Le nom de l'exécutable pour lancer un terminal sous Ubuntu est gnome-terminal. Lancer un deuxième terminal en tapant le nom du programme dans le terminal. Pouvez-vous utiliser le premier terminal ? le deuxième terminal ?
  20. Quels sont les pid des processus parents des deux terminaux ? Quels sont ces processus parents ?
  21. Avec un éditeur de fichier, modifier le contenu de monScript.sh.
    #!/bin/bash
    while [ true ]
    do
            for i in {1..150}
            do
                    echo Bonjour $RANDOM
            done
            sleep 1
    done
    
  22. Lancez le script monScript.sh et regardez les ressources que le processus occupe avec la commande top dans un autre terminal.
  23. Diminuez la priorité du processus à l'aide de la commande renice dans un troisième terminal et regardez le résultat dans la fenêtre qui exécute le top.
  24. Tuez le script et relancez le avec la commande
    nohup ./monScript.sh > sortie.txt &
    
  25. Fermez la fenêtre dans laquelle vous avez lancez la commande et vérifiez que le programme continue à tourner en exécutant la commande dans le répertoire où a été créé le fichier sortie.txt.
    tail -f sortie.txt
    
  26. Vous pouvez vous déconnecter sans oublier d'enregister les fichiers à sauvegarder et vous reconnectez puis vérifier que le processus tourne toujours. Pour finir, tuez ce processus. Il se peut que la déconnexion ait tué le processus. Comment peut-on résoudre le problème ?
  27. Pour aller plus loin : https://linux.goffinet.org/administration/processus-et-demarrage/processus-linux/