À propos du projet
witr est un binaire statique unique pour Linux, macOS, Windows et FreeBSD qui répond à une question : pourquoi ceci tourne-t-il ? À partir d'un nom de processus, d'un PID, d'un port, d'un conteneur ou d'un fichier ouvert, il construit la chaîne causale des superviseurs, services, shells et conteneurs responsables de l'existence actuelle de cet élément.
Idée centrale : tout est traité comme une question de processus. Les ports, services, conteneurs et commandes sont tous ramenés à des PID, et une fois un PID identifié, witr explique ce qui tourne, comment cela a démarré, ce qui le maintient en fonctionnement et à quel contexte cela appartient. Cela diffère d'outils comme ps, top, lsof, ss, systemctl ou docker ps, qui exposent l'état et les métadonnées mais laissent l'utilisateur corréler manuellement les sorties.
Modes d'utilisation :
- La sortie standard affiche la cible, le processus, l'utilisateur, la commande, l'heure de démarrage, la chaîne d'ascendance (par exemple systemd vers pm2 vers node), la source, le répertoire de travail, le dépôt git et les sockets.
- --short n'affiche que la chaîne d'ascendance ; --tree rend l'ascendance sous forme d'arbre incluant jusqu'à 10 processus enfants.
- --json émet des résultats lisibles par machine ; --env affiche les variables d'environnement ; --verbose ajoute des informations étendues sur le processus ; --warnings n'affiche que les avertissements.
- Les arguments positionnels sont traités comme des noms de processus ou de service, avec correspondance par sous-chaîne par défaut et --exact pour les noms exacts. Les correspondances multiples sont listées avec les PID et une suggestion de relancer avec --pid.
- --pid, --port, --file et --container sont répétables et peuvent être mélangés entre eux et avec des arguments de nom ; les résultats apparaissent dans l'ordre donné, séparés par des séparateurs étiquetés.
- --container recherche dans Docker, Podman, nerdctl, K8s/crictl, Incus, LXC, LXD et les jails FreeBSD, en faisant correspondre le nom du conteneur, l'image, la commande et les étiquettes de projet/service compose.
TUI interactive : lancer witr sans argument ou avec -i ouvre un tableau de bord terminal à quatre onglets. Processes affiche une liste vivante, triable et filtrable avec un panneau latéral d'ascendance. Ports liste les ports en écoute ou tous les ports avec les processus propriétaires, basculable avec a. Containers agrège les conteneurs en cours d'exécution sur les runtimes pris en charge avec une vue détaillée des montages, réseaux et métadonnées compose. Locks affiche les verrous de fichiers à l'échelle du système (POSIX/FLOCK sur Linux, dérivés de lsof sur macOS/FreeBSD) et peut y fusionner tous les descripteurs de fichiers ouverts intéressants. La TUI prend aussi en charge des actions sur les processus comme kill, terminate, pause, resume et renice sous Unix, la navigation à la souris, un thème clair/sombre adaptatif et un rafraîchissement automatique à une cadence adaptative démarrant à 3 secondes.
L'installation est large : scripts d'installation pour Unix et Windows, plus des paquets via APT, Homebrew, MacPorts, Conda, AUR, Winget, npm, FreeBSD Ports, Chocolatey, Scoop, AOSC OS, GNU Guix, Uniget, Aqua, Brioche et mise, avec des artefacts deb/rpm/apk et go install depuis les sources. Des complétions de shell sont fournies pour Bash, Zsh, Fish et PowerShell, et une page de manuel est incluse. Un tutoriel simulé dans le navigateur et un bac à sable sont disponibles pour essayer le flux de travail sans installer.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.