Aller au contenu principal

Lab 4.1 - Visualisation des Processus

Objectifs​

À la fin de ce lab, vous serez capable de:

  • Visualiser les processus avec ps, top, htop
  • Comprendre les informations affichées
  • Filtrer et trier les processus
  • Monitorer les processus en temps réel

Prérequis​

  • Ubuntu 24.04 installé
  • Terminal ouvert
  • htop installé (optionnel mais recommandé)

Exercice 1: ps (Process Status)​

Étape 1: Commandes de Base​

# Voir tous les processus
ps aux

# Voir les processus de l'utilisateur actuel
ps

# Avec plus de détails
ps auxf # Arbre des processus

# Voir un processus spécifique
ps aux | grep firefox

Étape 2: Options Utiles​

# Format personnalisé
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10

# Processus par utilisateur
ps -u $USER

# Processus par PID
ps -p 1

# Processus avec arbre
pstree
pstree -p # Avec PID

Étape 3: Analyse​

# Top 10 par CPU
ps aux --sort=-%cpu | head -11

# Top 10 par mémoire
ps aux --sort=-%mem | head -11

# Compter les processus
ps aux | wc -l

# Par utilisateur
ps aux | awk '{print $1}' | sort | uniq -c | sort -rn

Exercice 2: top​

Étape 1: Utilisation de Base​

# Lancer top
top

# Commandes dans top:
# - 'q': Quitter
# - 'k': Tuer un processus (entrer PID)
# - 'r': Renicer un processus
# - 'M': Trier par mémoire
# - 'P': Trier par CPU
# - 'f': Changer les colonnes affichées
# - '1': Voir tous les CPUs

Étape 2: Mode Batch​

# Exécuter top en mode batch (une fois)
top -bn1 | head -20

# Sauvegarder dans un fichier
top -bn1 > top-output.txt

# Voir les top processus
top -bn1 | grep -A 20 "PID USER"

Exercice 3: htop (Amélioré)​

Étape 1: Installation​

# Installer htop
sudo apt update
sudo apt install htop

# Lancer
htop

Étape 2: Fonctionnalités htop​

# htop offre:
# - Interface colorée et intuitive
# - Navigation avec flèches
# - Filtrage en temps réel (F4)
# - Recherche (F3)
# - Tuer processus (F9)
# - Renicer (F7/F8)
# - Arbre des processus (F5)

Étape 3: Configuration​

# Dans htop:
# - F2: Setup (configuration)
# - F10: Quitter

Exercice 4: Informations Détaillées​

Étape 1: /proc​

# Informations sur un processus (remplacer PID)
PID=$(pgrep -f firefox | head -1)
echo "PID: $PID"

# Statut
cat /proc/$PID/status

# Fichiers ouverts
ls -l /proc/$PID/fd/

# Répertoire de travail
readlink /proc/$PID/cwd

# Exécutable
readlink /proc/$PID/exe

Étape 2: lsof (si installé)​

# Installer
sudo apt install lsof

# Fichiers ouverts par un processus
sudo lsof -p $PID

# Processus utilisant un fichier
sudo lsof /var/log/syslog

# Connexions réseau
sudo lsof -i

Exercice 5: Monitoring en Temps Réel​

Étape 1: watch​

# Surveiller les processus
watch -n 1 'ps aux --sort=-%cpu | head -10'

# Surveiller un processus spécifique
watch -n 1 'ps -p $PID -o pid,%cpu,%mem,cmd'

Étape 2: Script de Monitoring​

# Créer un script
cat > ~/monitor-processes.sh << 'EOF'
#!/bin/bash
while true; do
clear
echo "=== $(date) ==="
echo
echo "Top 5 CPU:"
ps aux --sort=-%cpu | head -6
echo
echo "Top 5 Mémoire:"
ps aux --sort=-%mem | head -6
echo
echo "Total processus: $(ps aux | wc -l)"
sleep 2
done
EOF

chmod +x ~/monitor-processes.sh
# Lancer: ./monitor-processes.sh

Exercice 6: Filtrage Avancé​

Étape 1: Par Nom​

# Trouver tous les processus contenant "python"
ps aux | grep python

# Exclure le processus grep lui-même
ps aux | grep python | grep -v grep

# Avec pgrep
pgrep -a python

Étape 2: Par Utilisateur​

# Processus d'un utilisateur
ps -u root

# Tous sauf root
ps aux | grep -v "^root"

Étape 3: Par État​

# Processus en cours d'exécution
ps aux | grep " R "

# Processus en attente
ps aux | grep " S "

# Processus zombie
ps aux | grep " Z "

Vérification​

Checklist​

Vérifiez que vous pouvez:

  • Utiliser ps pour voir les processus
  • Utiliser top pour monitoring temps réel
  • Utiliser htop (interface améliorée)
  • Filtrer et trier les processus
  • Voir les informations détaillées (/proc)
  • Monitorer en temps réel

Questions de Réflexion​

  1. Quelle est la différence entre ps et top?

    • ps: instantané
    • top: temps réel, interactif
  2. Que signifient les états des processus (R, S, Z)?

    • R: Running (en cours)
    • S: Sleeping (en attente)
    • Z: Zombie (terminé mais pas nettoyé)
  3. Pourquoi htop est-il préféré à top?

    • Interface plus intuitive
    • Navigation plus facile
    • Plus d'informations visuelles

Prochaines Étapes​

  • Lab 4.2: Contrôle des Processus
  • Lab 4.3: Priorités et Nice Values
  • Chapitre 4.2: Visualisation des Processus

Lab créé le: Décembre 2024 - Testé sur Ubuntu 24.04