Servy - Transformez n'importe quel .exe en service Windows
Un scénario classique en entreprise c’est un script Python de synchronisation qui doit tourner sous Windows et qui se barre en erreur à chaque redémarrage. Le coupable c’est ce fichu service Windows qui s’obstine à chercher sa configuration dans C:\Windows\System32 plutôt que dans le répertoire de l’application. Du coup, ça prend 3 heures de débogage pour un problème vieux comme Windows NT et ça c’est moche !
Car le problème avec les services Windows, c’est qu’ils sont coincés dans les années 90. La commande sc create
ne fonctionne qu’avec des applications spécialement conçues pour être des services. Et NSSM est puissant mais avec une interface en ligne de commande cryptique et des éditions du registre à la main. Et le pire dans tout ça, c’est ce fameux répertoire de travail bloqué sur System32 qui fait planter la moitié des applications qui dépendent de chemins relatifs.
La bonne nouvelle c’est qu’il existe Servy qui débarque comme une bouffée d’air frais dans cet écosystème poussiéreux. Développé entièrement en C# par Aelassas, ce petit outil open source fait exactement ce qu’on attend de lui à savoir transformer n’importe quel executable en service Windows, avec une vraie interface graphique moderne et surtout, la possibilité de définir ce foutu répertoire de travail.
Pour l’utiliser, il vous suffit de télécharger la dernière release sur GitHub, de le décompresser, et de lancez Servy.exe. L’interface est claire… nom du service, description, chemin de l’exe, working directory (enfin !), paramètres de démarrage, et c’est parti. En 30 secondes, votre application Node.js, votre script Python ou votre serveur web tournera alors comme un vrai service Windows.
Et les fonctionnalités de Servy vont bien au-delà du simple lancement puisqu’il intègre des health checks configurables avec intervalle personnalisé (30 secondes par défaut) et un nombre d’échecs tolérés avant action. Le système de recovery gère comme un chef le redémarrage du service, du processus, ou même de la machine complète selon vos besoins. Et pour éviter les boucles infinies, vous pouvez bien sûr limiter le nombre de tentatives de redémarrage.
La gestion des logs est également un autre point fort de Servy puiqu’il peut rediriger automatiquement stdout et stderr vers des fichiers avec rotation automatique basée sur la taille. Comme ça, plus besoin de scripts batch complexes ou de solutions tierces pour capturer les sorties de vos applications console. Tout est géré proprement, avec des logs organisés et consultables.
Selon le guide Windows Services Manager, accéder aux services Windows reste toujours aussi archaïque : Win+R, services.msc, + Entrée. Heureusement, avec Servy, tout se fait depuis son interface. Vous pouvez démarrer, arrêter, mettre en pause, redémarrer vos services, modifier leur priorité (Real-time, High, Normal, Low), et même définir le type de démarrage (Automatic, Manual, Disabled).
Un détail qui fait la différence avec d’autres outils du même genre, c’est la prévention des processus zombies. Hé oui, Servy se la joue comme dans Walking Dead et gère proprement le cycle de vie des processus enfants, s’assurant qu’aucun processus orphelin ne traîne après l’arrêt d’un service. C’est le genre de conneries qu’on découvre généralement après plusieurs semaines de production, quand le serveur commence à ramer sans raison apparente.
Et ça tourne aussi bien de Windows 7 SP1 jusqu’à Windows 11, en passant par toutes les versions Server. Et surtout, le code source complet est disponible sur GitHub sous licence MIT.
Bref, c’est un super outil gratuit, open source, avec une interface bien pensée, et toutes les fonctionnalités dont on rêvait sans le côté usine à gaz !!
Pour les entreprises, c’est une solution idéale pour déployer des applications métier sans les réécrire, avoir à se former sur NSSM ou de maintenir des scripts PowerShell complexes. Cet outil permet de réduire les coûts de maintenance et les erreurs humaines. Bref, c’est un logiciel qui devrait être dans la boîte à outils de tout les admins Windows qui se respectent.