Aller au contenu
Administration Linux medium

witr : comprendre pourquoi un processus tourne

6 min de lecture

Quand un processus inconnu consomme du CPU, qu'un port est déjà pris ou qu'un service revient sans cesse, la vraie question n'est pas quoi, mais pourquoi. Les outils classiques (ps, top, lsof, ss, systemctl, docker ps) montrent l'état, et vous laissent corréler à la main. witr (Why Is This Running) répond directement : il trace l'ancêtre d'un processus et reconstitue la chaîne qui l'a fait exister (systemd, service, conteneur, shell). Ce guide montre comment l'installer et l'utiliser pour diagnostiquer vite.

  • Installer witr sur Linux (binaire, paquet, gestionnaire)
  • Tracer l'origine d'un processus par nom, PID, port, fichier ou conteneur
  • Lire la chaîne d'ancêtres (Why It Exists) et les avertissements
  • Diagnostiquer un port occupé ou un processus mystérieux en une commande

ps et lsof exposent l'état : un PID, une commande, un port. Mais ils ne disent pas d'où vient le processus. witr corrèle ces couches à votre place et affiche la lignée : qui a lancé quoi, via quel service ou quel conteneur, jusqu'à systemd.

QuestionOutil classiquewitr
Quel PID, quelle commande ?ps, topoui
Quel processus tient ce port ?ss -tlnp, lsof -iwitr --port
Pourquoi ce processus existe ?corrélation manuellechaîne d'ancêtres
Quel service systemd le gère ?systemctl statusaffiché directement

witr est un binaire Go statique (Linux, macOS, FreeBSD, Windows).

Fenêtre de terminal
curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash

Installe le binaire dans /usr/local/bin/witr et la page de manuel.

Vérifiez l'installation :

Fenêtre de terminal
witr --version
witr v0.3.3

Interrogez un processus par son nom. Si plusieurs correspondent, witr liste les candidats avec leur PID :

Fenêtre de terminal
witr auditd
Multiple matching processes found:
[1] kauditd (pid 22)
[2] auditd (pid 1096)
/sbin/auditd
Re-run with:
witr --pid <pid>

Ciblez alors le PID voulu :

Fenêtre de terminal
witr --pid 1096
Process : auditd (pid 1096)
User : root
Service : auditd.service
Command : /sbin/auditd
Started : 10 hours ago
Why It Exists :
systemd (pid 1) → auditd (pid 1096)
Source : auditd.service (systemd)
Description : Security Auditing Service
Unit File : /lib/systemd/system/auditd.service
Warnings :
• Process is running as root
• Process is running from a suspicious working directory: /

La section Why It Exists donne la chaîne d'ancêtres, et Unit File pointe directement le fichier systemd responsable. Les Warnings signalent des points de vigilance (exécution en root, répertoire de travail inhabituel).

witr ne se limite pas aux noms de processus. Les drapeaux couvrent les questions de diagnostic les plus fréquentes :

Fenêtre de terminal
# Quel processus écoute sur le port 5432 ?
witr --port 5432
# Quel processus tient ce fichier ouvert (verrou) ?
witr --file /var/lib/dpkg/lock
# D'où vient ce conteneur ?
witr --container redis
# Correspondance exacte (pas de recherche floue)
witr nginx --exact

witr --port remplace à lui seul le réflexe ss -tlnp | grep suivi d'un systemctl status, et remonte en plus la lignée du processus trouvé.

Le scénario classique : un service refuse de démarrer car son port est occupé. Plutôt que d'enchaîner ss, lsof et systemctl, une commande suffit :

Fenêtre de terminal
witr --port 8080

witr identifie le processus, et indique s'il provient d'un service systemd, d'un conteneur Docker ou d'un shell, vous évitant de tuer aveuglément un PID dont vous ignorez la provenance.

  • witr répond au pourquoi un processus tourne, pas seulement au quoi
  • Il trace la chaîne d'ancêtres (Why It Exists) jusqu'à systemd, et pointe l'unit file
  • Cibles : nom, --pid, --port, --file, --container
  • Les Warnings ajoutent une lecture sécurité (root, working dir suspect)
  • Binaire Go unique, installable par script, paquet (.deb/.rpm) ou gestionnaire
  • Idéal pour diagnostiquer vite un port occupé ou un processus mystérieux

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn