Hoe elk programma als achtergrondservice in Windows wordt uitgevoerd
Als je net als de meeste Windows-gebruikers bent, heb je veel geweldige kleine hulpprogramma's die worden uitgevoerd wanneer je Windows start. Hoewel dit prima werkt voor de meeste apps, zijn er enkele die handig zijn om te starten, zelfs voordat een gebruiker zich aanmeldt bij de pc. Hiertoe moet u de app uitvoeren als een Windows-service.
Windows-services zijn een speciale klasse van programma's die zijn geconfigureerd om op de achtergrond te worden gestart en uitgevoerd, meestal zonder enige gebruikersinterface en zonder dat een gebruiker zich hoeft aan te melden bij de pc. Veel gamers en ervaren gebruikers kennen ze als dingen die je gebruikte om uit te schakelen om je systeem te versnellen, hoewel dat echt niet meer nodig is.
Het belangrijkste voordeel van het uitvoeren van een app als een service is dat u een programma kunt starten voordat een gebruiker zich aanmeldt. Dat kan met name belangrijk zijn bij apps die belangrijke services bieden die u beschikbaar wilt hebben wanneer u niet achter uw computer zit.
Een perfect voorbeeld hiervan is Plex, een mediaserver-app die lokale inhoud kan streamen naar zowat elk apparaat waarvan je de eigenaar bent. Natuurlijk zou je het als een normaal programma in het systeemvak kunnen laten zitten, maar wat als de computer opnieuw opstart vanwege een stroomstoring of geplande updates? Totdat u weer inlogt op de pc, zou Plex niet beschikbaar zijn. Dat is irritant als je naar een andere kamer moet rennen om Plex back-up te maken terwijl je popcorn koud wordt, en super irritant als je de stad uit bent en je media via internet probeert te streamen. Het opzetten van Plex as a Service zou dat probleem oplossen.
Voordat u aan de slag gaat, moet u rekening houden met een aantal belangrijke waarschuwingen voor het uitvoeren van een app als service:
- De app plaatst geen pictogram in het systeemvak. Als u de interface regelmatig beschikbaar voor een app nodig hebt, is deze mogelijk niet het meest geschikt om als een service te worden uitgevoerd.
- Wanneer u wijzigingen of updates van de configuratie moet aanbrengen, moet u de service stoppen, het programma uitvoeren als een normale app, doen wat u moet doen, het programma stoppen en de service opnieuw starten.
- Als het programma al is ingesteld om te worden uitgevoerd wanneer Windows wordt gestart, moet u dit uitschakelen zodat u niet eindigt met twee exemplaren die worden uitgevoerd. De meeste programma's hebben een optie in de interface voor het omschakelen van deze instelling. Anderen kunnen zichzelf toevoegen aan uw opstartmap, zodat u ze daar kunt verwijderen.
Klaar om te rollen? Laten we het hebben over hoe het in te stellen.
Stap één: installeer SrvStart
Als u een app als een service wilt uitvoeren, hebt u een klein hulpprogramma van derden nodig. Er zijn er verschillende, maar onze favoriet is SrvStart. Het is oorspronkelijk ontworpen voor Windows NT en zal met vrijwel elke versie van Windows vanaf Windows XP werken.
Ga om te beginnen naar de downloadpagina van SrvStart en pak het hulpprogramma. De download bevat slechts vier bestanden (twee DLL- en twee EXE-bestanden). Er is geen installatieprogramma; Kopieer deze in plaats daarvan naar uw computer C: \ Windows
map deze naar uw hoofdmap van Windows om SrvStart te "installeren".
We gaan ook ervan uit dat je al welk programma je in een dienst hebt geïnstalleerd en ingesteld hebt, maar als je dat nog niet hebt gedaan, zou het nu een goed moment zijn om dat ook te doen.
Stap twee: Maak een configuratiebestand voor de nieuwe service
Vervolgens wilt u een configuratiebestand maken dat SrvStart zal lezen om de service te maken. U kunt veel met SrvStart doen en u kunt de volledige details van alle configuratieopties op de documentatiepagina lezen. Voor dit voorbeeld gebruiken we slechts twee opdrachten: opstarten
, die het programma dat moet worden opgestart, en specificeert shutdown_method
, die SrvStart vertelt hoe het programma te sluiten wanneer de betreffende service wordt gestopt.
Start Notepad op en maak uw configuratiebestand met behulp van het onderstaande formaat. Hier gebruiken we Plex, maar je kunt een bestand maken voor elk programma dat je als een service wilt uitvoeren. De opstarten
commando specificeert eenvoudig het pad waar het uitvoerbare bestand zich bevindt. Voor de shutdown_method
opdracht, we gebruiken de winmessage
parameter, waardoor SrvStart een Windows close-bericht verzendt naar de vensters die door de service worden geopend.
[Plex] startup = "C: \ Program Files (x86) \ Plex \ Plex Media Server \ Plex Media Server.exe" shutdown_method = winmessage
Natuurlijk, pas het pad en de naam aan volgens het programma dat u start.
Sla het nieuwe configuratiebestand waar u maar wilt op en vervang de extensie .txt door een extensie .ini. Noteer de bestandsnaam, aangezien we deze in de volgende stap nodig hebben. Voor het gemak van typen op de opdrachtprompt, raden we aan dit bestand tijdelijk op te slaan op uw C: -station.
Stap drie: Gebruik de opdrachtprompt om de nieuwe service te maken
Uw volgende stap is het gebruik van de opdracht Windows Service Controller (SC) om de nieuwe service te maken op basis van de criteria in uw configuratiebestand. Open de opdrachtprompt door met de rechtermuisknop op het menu Start te klikken (of op Windows + X te drukken), "Command Prompt (Admin)" te kiezen en vervolgens op Ja te klikken om deze met beheerdersrechten te laten uitvoeren.
Gebruik bij de opdrachtprompt de volgende syntaxis om de nieuwe service te maken:
SC CREATE Displayname = "" binpath = "srvstart.exe -c" start =
Er zijn een paar dingen om op te merken in die opdracht. Ten eerste heeft elk gelijkteken (=) een spatie erna. Dat is vereist. Ook de waarde is geheel aan jou. En, ten slotte, voor de
waarde die u wilt gebruiken
auto
zodat de service automatisch wordt gestart met Windows.
Dus in ons Plex-voorbeeld ziet het commando er als volgt uit:
SC CREATE Plex Displayname = "Plex" binpath = "srvstart.exe Plex -c C: PlexService.ini" start = auto
Ja, je leest het goed: ik gebruikte C: PlexService.ini
in plaats van C: \ PlexService.ini
. De opdracht vereist dat u de schuine streep verwijdert.
Wanneer u het commando uitvoert, zou u een SUCCES-bericht moeten ontvangen als alles goed gaat.
Vanaf dit punt wordt uw nieuwe service uitgevoerd wanneer Windows wordt gestart. Als u de Windows Services-interface opent (klik op Start en typ "Services"), dan kunt u de nieuwe service vinden en configureren, net als elke andere.
En dat is alles wat er is. Als u apps hebt die met Windows beginnen en u wilt dat ze beginnen zonder dat een gebruiker zich hoeft aan te melden, is het eenvoudig genoeg om van elke app een service te maken. We hebben nog maar net de basismethode aangeraakt voor het maken en uitvoeren van een nieuwe service, maar er is nog veel meer dat u kunt doen met SrvStart om de manier waarop een service wordt uitgevoerd, nauwkeuriger in te stellen. Bekijk de documentatie als u meer wilt weten.