Si vous êtes comme la plupart des utilisateurs de Windows, vous disposez de nombreux petits utilitaires qui s’exécutent lorsque vous démarrez Windows. Bien que cela fonctionne très bien pour la plupart des applications, il y en a qui seraient bien de démarrer avant même qu’un utilisateur se connecte au PC. Pour ce faire, vous devrez exécuter l’application en tant que service Windows.
Les services Windows sont une classe spéciale de programmes configurés pour se lancer et s’exécuter en arrière-plan, généralement sans aucune sorte d’interface utilisateur et sans qu’un utilisateur ne se connecte au PC. De nombreux joueurs et utilisateurs expérimentés les connaissent comme des choses que vous aviez l’habitude de désactiver pour accélérer votre système, bien que ce ne soit plus vraiment nécessaire.
Le principal avantage de l’exécution d’une application en tant que service est que vous pouvez faire démarrer un programme avant qu’un utilisateur ne se connecte. Cela peut être particulièrement important avec les applications qui fournissent des services importants dont vous souhaitez disposer lorsque vous n’êtes pas à proximité de votre ordinateur.
Un exemple parfait de cela est Plex, une application de serveur multimédia qui peut diffuser du contenu local sur à peu près n’importe quel appareil que vous possédez. Bien sûr, vous pouvez le laisser dans la barre d’état système comme un programme normal, mais que se passe-t-il si l’ordinateur redémarre en raison d’une panne de courant ou de mises à jour programmées? Jusqu’à ce que vous vous reconnectiez sur le PC, Plex ne serait pas disponible. C’est irritant si vous devez courir dans une autre pièce pour redémarrer Plex pendant que votre pop-corn refroidit, et très irritant si vous êtes hors de la ville et que vous essayez de diffuser vos médias sur Internet. La configuration de Plex en tant que service résoudrait ce problème.
Avant de commencer, vous devez être conscient de quelques mises en garde importantes concernant l’exécution d’une application en tant que service:
- L’application ne mettra pas d’icône dans la barre d’état système. Si vous avez besoin de l’interface disponible régulièrement pour une application, elle n’est peut-être pas la mieux adaptée pour fonctionner en tant que service.
- Lorsque vous devez apporter des modifications de configuration ou des mises à jour, vous devez arrêter le service, exécuter le programme en tant qu’application standard, faire ce que vous devez faire, arrêter le programme, puis redémarrer le service.
- Si le programme est déjà configuré pour s’exécuter au démarrage de Windows, vous devrez le désactiver afin de ne pas vous retrouver avec deux instances en cours d’exécution. La plupart des programmes ont une option dans l’interface pour basculer ce paramètre. D’autres peuvent s’ajouter à votre dossier de démarrage, vous pouvez donc les supprimer à cet endroit.
Prêt à partir? Parlons de la façon de le configurer.
Première étape: installer SrvStart
Pour exécuter une application en tant que service, vous aurez besoin d’un petit utilitaire tiers. Il y en a plusieurs, mais notre préféré est SrvStart. Il a été conçu à l’origine pour Windows NT et fonctionnera avec à peu près n’importe quelle version de Windows à partir de Windows XP.
Pour commencer, rendez-vous sur le Page de téléchargement de SrvStart et prenez l’utilitaire. Le téléchargement ne contient que quatre fichiers (deux DLL et deux fichiers EXE). Il n’y a pas d’installateur; à la place, copiez-les sur votre ordinateur C:Windows
placez-les dans votre dossier Windows principal pour «installer» SrvStart.
Nous allons également supposer que vous avez déjà installé et configuré le programme que vous allez transformer en service, mais si vous ne l’avez pas fait, ce serait le bon moment pour le faire aussi.
Deuxième étape: créer un fichier de configuration pour le nouveau service
Ensuite, vous voudrez créer un fichier de configuration que SrvStart lira pour créer le service. Vous pouvez faire beaucoup avec SrvStart, et vous pouvez lire tous les détails sur toutes les options de configuration sur le page de documentation. Pour cet exemple, nous n’utiliserons que deux commandes: startup
, qui spécifie le programme à lancer, et shutdown_method
, qui indique à SrvStart comment fermer le programme lorsque le service respectif est arrêté.
Lancez le Bloc-notes et créez votre fichier de configuration en utilisant le format ci-dessous. Ici, nous utilisons Plex, mais vous pouvez créer un fichier pour tout programme que vous souhaitez exécuter en tant que service. La startup
La commande spécifie simplement le chemin où réside le fichier exécutable. Pour le shutdown_method
commande, nous utilisons la winmessage
paramètre, ce qui oblige SrvStart à envoyer un message de fermeture de Windows à toutes les fenêtres ouvertes par le service.
[Plex] startup="C:Program Files (x86)PlexPlex Media ServerPlex Media Server.exe" shutdown_method=winmessage
Évidemment, ajustez le chemin et le nom en fonction du programme que vous lancez.
Enregistrez le nouveau fichier de configuration où vous le souhaitez et remplacez l’extension .txt par une extension .ini. Notez le nom du fichier, car nous en aurons besoin à l’étape suivante. Pour faciliter la saisie à l’invite de commande, nous vous suggérons d’enregistrer temporairement ce fichier directement sur votre lecteur C :.
Troisième étape: utilisez l’invite de commande pour créer le nouveau service
L’étape suivante consiste à utiliser la commande Windows Service Controller (SC) pour créer le nouveau service en fonction des critères de votre fichier de configuration. Ouvrez l’invite de commandes en cliquant avec le bouton droit sur le menu Démarrer (ou en appuyant sur Windows + X), en choisissant «Invite de commandes (Admin)», puis en cliquant sur Oui pour lui permettre de s’exécuter avec des privilèges administratifs.
À l’invite de commandes, utilisez la syntaxe suivante pour créer le nouveau service:
SC CREATE <servicename> Displayname= "<servicename>" binpath= "srvstart.exe <servicename> -c <path to srvstart config file>" start= <starttype>
Il y a quelques choses à noter dans cette commande. Tout d’abord, chaque signe égal (=) a un espace après lui. C’est nécessaire. Également <servicename>
la valeur dépend entièrement de vous. Et, enfin, pour le <starttype>
valeur, vous voudrez utiliser auto
afin que le service démarre automatiquement avec Windows.
Donc, dans notre exemple Plex, la commande ressemblerait à ceci:
SC CREATE Plex Displayname= "Plex" binpath= "srvstart.exe Plex -c C:PlexService.ini" start= auto
Oui, vous avez bien lu: j’ai utilisé C:PlexService.ini
au lieu de C:PlexService.ini
. La commande vous oblige à supprimer la barre oblique.
Lorsque vous exécutez la commande, vous devriez recevoir un message SUCCESS si tout se passe bien.
À partir de ce moment, votre nouveau service s’exécutera au démarrage de Windows. Si vous ouvrez l’interface des services Windows (cliquez simplement sur Démarrer et tapez «Services»), vous pouvez trouver et configurer le nouveau service comme vous le feriez pour n’importe quel autre.
Et c’est tout ce qu’il y a à faire. Si vous avez des applications qui commencent par Windows et que vous préférez qu’elles démarrent sans qu’un utilisateur se connecte, il est assez facile de transformer n’importe quelle application en service. Nous venons seulement d’évoquer la méthode de base pour créer et exécuter un nouveau service, mais vous pouvez faire beaucoup plus avec SrvStart pour affiner le fonctionnement d’un service. N’oubliez pas de consulter la documentation si vous souhaitez en savoir plus.