Processus et jobs
Progression
#Processus et jobs
Un processus est un programme en cours d’exécution. Il possède un identifiant (PID), des descripteurs de fichiers, de la mémoire et un état. Le shell peut lancer des processus au premier plan (le terminal “attend”) ou en arrière‑plan (le terminal rend la main). Ajoutez & pour démarrer en arrière‑plan.
Exemple:
1# Lance un serveur HTTP simple au second plan2python -m http.server 8000 &3jobs # liste des jobs en arrière-plan4fg %1 # ramène le job 1 au premier planLes signaux permettent de communiquer avec un processus. TERM demande un arrêt propre, KILL force l’arrêt immédiatement (irréversible), HUP signifie souvent “recharge ta configuration”. Préférez toujours TERM et donnez au programme une chance de nettoyer:
1pidof python | xargs kill -TERM # arrêt gracieuxPour observer la vie du système, utilisez top/htop, ps aux | grep nom, ou lsof -i :8000 pour voir qui écoute un port.
Sur les distributions modernes, systemd gère des services pérennes et des timers (planification simple). Les journaux se consultent avec journalctl -u mon-service.
Enfin, ajuster la priorité (nice) peut aider à laisser de la place aux tâches interactives:
1nice -n 10 longue_tache # priorité plus basseAstuce: concevez vos scripts pour qu’ils tolèrent d’être relancés (idempotence) et qu’ils gèrent proprement TERM (cleanup via trap). Pour détacher durablement un processus d’un terminal, utilisez nohup cmd & ou, mieux, une unité systemd dédiée plutôt que de « daemoniser » à la main. Quand vous devez fermer le shell mais garder le job, disown évite l’envoi de SIGHUP.
#Animation: contrôle des jobs
#Diagramme: signaux et TTY
Mini‑exercice: lancez une commande longue (ex: sleep 1000), suspendez‑la (Ctrl+Z), reprenez‑la en bg, listez avec jobs, ramenez‑la en fg, puis terminez‑la proprement avec kill -TERM %1. Notez les différences de codes de sortie.