Linux : processus, services et réseau de base
Cette page présente les réflexes de base pour savoir ce qui tourne sur une machine, relancer un service et vérifier la connectivité. Les approfondissements sont dans Linux avancé, systemd et Pare-feu.
Les processus
Section intitulée « Les processus »Un processus est un programme en cours d’exécution, identifié par un PID.
ps aux # tous les processusps aux | grep nginx # filtrerps -ef --forest # arborescence parent-enfantpgrep -a nginx # PID par nomtop # vue en direct (q pour quitter)htop # version plus agréable (sudo apt install htop)Dans top : P trie par processeur, M par mémoire, k envoie un signal à un processus, q quitte. Les colonnes utiles : PID, USER, %CPU, %MEM, COMMAND.
Arrêter un processus
Section intitulée « Arrêter un processus »kill 1234 # demande d'arrêt propre (SIGTERM)kill -9 1234 # arrêt brutal (SIGKILL) : en DERNIER recourspkill nginx # par nomkillall -TERM nodeToujours essayer kill (propre) avant kill -9 (le programme n’a alors aucune chance d’enregistrer ses données). Pour les signaux et états en détail : Linux avancé : processus et ressources.
Arrière-plan et premier plan
Section intitulée « Arrière-plan et premier plan »./long-calcul.sh & # lancer en arrière-planjobs # tâches de ce terminalfg %1 # ramener au premier plan# Ctrl+Z puis bg : suspendre, puis relancer en arrière-plannohup ./long-calcul.sh > sortie.log 2>&1 & # survit à la fermeture du terminalPour une tâche longue sur un serveur, préférer tmux (Terminal et navigation) ou un service systemd (ci-dessous).
Les services avec systemctl
Section intitulée « Les services avec systemctl »Un service (démon) est un programme lancé au démarrage et géré par systemd.
systemctl status nginx # état et dernières lignes de journalsudo systemctl start nginxsudo systemctl stop nginxsudo systemctl restart nginx # arrêt puis démarrage (coupure brève)sudo systemctl reload nginx # recharge la configuration sans coupure (si pris en charge)sudo systemctl enable nginx # démarrer automatiquement au bootsudo systemctl disable nginxsudo systemctl enable --now nginx # activer ET démarrersystemctl is-active nginxsystemctl is-enabled nginxsystemctl list-units --type=service --state=runningsystemctl --failed # services en échec| État affiché | Sens |
|---|---|
active (running) |
Fonctionne |
inactive (dead) |
Arrêté |
failed |
A échoué : lire le journal |
enabled / disabled |
Démarre ou non au boot |
Voir systemd : les bases et systemd : écrire un service pour créer le sien.
Les journaux
Section intitulée « Les journaux »journalctl -u nginx -n 50 # 50 dernières lignes du servicejournalctl -u nginx -f # suivre en direct (Ctrl+C pour arrêter)journalctl -p err -b # erreurs depuis le démarragejournalctl --since "1 hour ago"journalctl -xe # fin du journal avec explicationssudo tail -f /var/log/syslogsudo tail -n 50 /var/log/auth.log # connexions, sudoQuand un service échoue : systemctl status, puis journalctl -u <service> -n 50. La cause y figure presque toujours. Détails : systemd : le journal et Linux avancé : journaux et diagnostic.
Mémoire, disque, charge
Section intitulée « Mémoire, disque, charge »free -h # mémoire (regarder « available »)df -h # espace disquedu -sh /var/log # taille d'un dossieruptime # charge moyenne sur 1, 5, 15 minutesnproc # nombre de processeurslscpu | head| Constat | Interprétation |
|---|---|
available très faible dans free |
Manque de mémoire (le « cache » n’est pas un problème) |
df -h à 100 % sur / |
Disque plein : chercher avec du |
| Charge supérieure au nombre de cœurs de façon durable | Machine saturée |
Le réseau : les bases
Section intitulée « Le réseau : les bases »ip -br addr # adresses des interfacesip route # route par défaut (passerelle)hostname -I # adresses IP de la machineping -c 4 1.1.1.1 # accès au réseau (adresse IP)ping -c 4 exemple.com # + résolution DNScurl -I https://exemple.com # un site web répond-il ? (en-têtes)curl -s https://api.exemple.com/santess -tlnp # ports en écoute et programmesresolvectl status | head -20 # serveurs DNS utilisésDiagnostiquer pas à pas
Section intitulée « Diagnostiquer pas à pas »| Étape | Commande | Si ça échoue |
|---|---|---|
| 1. La machine a-t-elle une adresse ? | ip -br addr |
Câble, DHCP, configuration réseau |
| 2. Joint-elle la passerelle ? | ping -c 3 <passerelle> (de ip route) |
Réseau local |
| 3. Joint-elle Internet par IP ? | ping -c 3 1.1.1.1 |
Passerelle, pare-feu |
| 4. Résout-elle les noms ? | ping -c 3 exemple.com |
DNS (Linux avancé : réseau) |
| 5. Le service répond-il ? | curl -I https://exemple.com |
Service, pare-feu distant |
Ports et services
Section intitulée « Ports et services »sudo ss -tlnp | grep ':80' # quel programme écoute sur le port 80 ?nc -vz serveur.exemple.com 22 # le port 22 de cette machine est-il joignable ?sudo ufw status # pare-feu localÉcouter sur 127.0.0.1 rend un service inaccessible de l’extérieur ; 0.0.0.0 ou * l’expose sur toutes les interfaces (Pare-feu : UFW).
Télécharger
Section intitulée « Télécharger »curl -O https://exemple.com/fichier.tar.gzcurl -L -o sortie.html https://exemple.com/wget https://exemple.com/fichier.tar.gzsha256sum fichier.tar.gz # vérifier l'intégrité si une empreinte est publiéeAccès distant
Section intitulée « Accès distant »ssh alice@monserveurssh -p 2222 alice@monserveur.exemple.comexit # fermer la sessionVoir SSH : installation et SSH : clés.
Arrêter et redémarrer
Section intitulée « Arrêter et redémarrer »sudo rebootsudo shutdown -r now # redémarrersudo shutdown -h +10 "arrêt dans 10 minutes"sudo shutdown -c # annuleruptime -s # depuis quand tourne la machineTâches planifiées (aperçu)
Section intitulée « Tâches planifiées (aperçu) »crontab -e # éditer ses tâchescrontab -l# m h jour mois jour-semaine commande30 3 * * * /usr/local/bin/sauvegarde.sh >> /var/log/sauvegarde.log 2>&1systemctl list-timers # minuteurs systemdPour la planification robuste (verrous, journaux, rattrapage), voir Linux avancé : sauvegarde et automatisation et systemd : minuteurs.
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
| Un service ne démarre pas | systemctl status, journalctl -u <service> -n 50, erreur de configuration |
Failed to start … Unit not found |
Nom du service incorrect : systemctl list-unit-files | grep <nom> |
Job for … failed because the control process exited |
Configuration invalide : tester avec la commande du service (nginx -t) |
Port déjà utilisé (Address already in use) |
sudo ss -tlnp | grep :<port> : un autre programme l’occupe |
kill sans effet |
Processus qui ignore SIGTERM : kill -9 en dernier recours |
| Machine lente | top (processeur), free -h (mémoire), df -h (disque) |
ping fonctionne mais pas curl |
Pare-feu, service arrêté, mauvais port |
ping: Temporary failure in name resolution |
DNS : resolvectl status |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Les commandes sont identiques. systemd est en version 255 sur 24.04 et 259 sur 26.04 ; /tmp est en mémoire sur 26.04.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Manuels :
man ps,man systemctl,man journalctl,man ip, systemd : dépannage - Suite : Texte, éditeurs et redirections