Ausführen eines Programms als Hintergrunddienst in Windows
Wenn Sie wie die meisten Windows-Benutzer sind, gibt es viele kleine Dienstprogramme, die beim Starten von Windows ausgeführt werden. Dies funktioniert zwar für die meisten Apps gut, aber es gibt einige, die sich schon vor der Anmeldung eines Benutzers am PC als nützlich erweisen könnten. Dazu müssen Sie die App als Windows-Dienst ausführen.
Windows-Dienste sind eine spezielle Klasse von Programmen, die so konfiguriert sind, dass sie im Hintergrund gestartet und ausgeführt werden können, normalerweise ohne jegliche Benutzeroberfläche und ohne dass sich ein Benutzer am PC anmelden muss. Viele Gamer und Power User wissen, dass diese Dinge deaktiviert wurden, um das System zu beschleunigen, obwohl dies wirklich nicht mehr nötig ist.
Der Hauptvorteil der Ausführung einer App als Dienst besteht darin, dass Sie ein Programm starten können, bevor sich ein Benutzer anmeldet. Dies kann besonders bei Apps wichtig sein, die wichtige Dienste bereitstellen, die verfügbar sind, wenn Sie sich nicht an Ihrem Computer befinden.
Ein perfektes Beispiel dafür ist Plex, eine Medienserver-App, die lokale Inhalte auf nahezu jedes Gerät übertragen kann, das Sie besitzen. Sicher, Sie könnten es wie ein normales Programm in der Taskleiste ablegen, aber was ist, wenn der Computer aufgrund eines Stromausfalls oder geplanter Updates neu startet? Bis Sie sich wieder am PC anmelden, ist Plex nicht verfügbar. Das ist ärgerlich, wenn Sie in einen anderen Raum laufen müssen, um Plex wieder zu starten, während Ihr Popcorn kalt wird. Wenn Sie sich nicht in der Stadt befinden und versuchen, Ihre Medien über das Internet zu streamen, ist das äußerst ärgerlich. Das Einrichten von Plex als Dienst würde dieses Problem lösen.
Bevor Sie beginnen, sollten Sie einige wichtige Einschränkungen beim Ausführen einer App als Dienst beachten:
- Die App zeigt kein Symbol in der Taskleiste an. Wenn Sie die Schnittstelle regelmäßig für eine App zur Verfügung haben, ist sie möglicherweise nicht als Dienst geeignet.
- Wenn Sie Konfigurationsänderungen oder -aktualisierungen vornehmen müssen, müssen Sie den Dienst beenden, das Programm als reguläre App ausführen, die erforderlichen Aktionen ausführen, das Programm stoppen und den Dienst erneut starten.
- Wenn das Programm bereits beim Start von Windows ausgeführt wird, müssen Sie es deaktivieren, damit nicht zwei Instanzen ausgeführt werden. Die meisten Programme haben eine Option in der Benutzeroberfläche, um diese Einstellung umzuschalten. Andere fügen sich möglicherweise Ihrem Startordner hinzu, so dass Sie sie dort entfernen können.
Bereit loszulegen? Lassen Sie uns darüber sprechen, wie Sie es einrichten.
Schritt Eins: Installieren Sie SrvStart
Um eine App als Dienst auszuführen, benötigen Sie ein kleines Dienstprogramm eines Drittanbieters. Es gibt mehrere da draußen, aber unser Favorit ist SrvStart. Es wurde ursprünglich für Windows NT entwickelt und funktioniert mit nahezu jeder Windows-Version ab Windows XP.
Um zu beginnen, gehe auf die SrvStart-Download-Seite und hol dir das Dienstprogramm. Der Download enthält nur vier Dateien (zwei DLL- und zwei EXE-Dateien). Es gibt keinen Installer. Kopieren Sie diese stattdessen auf Ihren Computer C: \ Windows
Ordner in Ihrem Windows-Hauptordner, um SrvStart zu installieren.
Wir gehen auch davon aus, dass Sie bereits ein beliebiges Programm installiert und eingerichtet haben, das Sie in einen Dienst umwandeln möchten. Wenn Sie dies nicht tun, ist dies jetzt ein guter Zeitpunkt.
Schritt 2: Erstellen Sie eine Konfigurationsdatei für den neuen Dienst
Als Nächstes möchten Sie eine Konfigurationsdatei erstellen, die SrvStart liest, um den Dienst zu erstellen. Sie können mit SrvStart viel tun, und Sie können alle Details zu allen Konfigurationsoptionen auf der Dokumentationsseite nachlesen. In diesem Beispiel werden wir nur zwei Befehle verwenden: Anlaufen
, welches das zu startende Programm angibt, und shutdown_method
, Dies gibt SrvStart an, wie das Programm geschlossen werden soll, wenn der entsprechende Dienst angehalten wird.
Starten Sie den Editor und erstellen Sie Ihre Konfigurationsdatei mit dem folgenden Format. Hier verwenden wir Plex, aber Sie können eine Datei für jedes Programm erstellen, das Sie als Dienst ausführen möchten. Das Anlaufen
Befehl gibt einfach den Pfad an, in dem sich die ausführbare Datei befindet. Für die shutdown_method
Befehl verwenden wir die winmessage
Parameter, der bewirkt, dass SrvStart eine Windows-Schließmeldung an alle vom Dienst geöffneten Fenster sendet.
[Plex] startup = "C: \ Programme (x86) \ Plex \ Plex Media Server \ Plex Media Server.exe" shutdown_method = winmessage
Passen Sie den Pfad und Namen selbstverständlich an das Programm an, das Sie starten.
Speichern Sie die neue Konfigurationsdatei, wo immer Sie möchten, und ersetzen Sie die Erweiterung TXT durch die Erweiterung INI. Notieren Sie sich den Dateinamen, da wir ihn im nächsten Schritt benötigen. Um die Eingabe an der Eingabeaufforderung zu erleichtern, empfehlen wir Ihnen, diese Datei vorübergehend direkt auf Ihrem Laufwerk C: zu speichern.
Schritt 3: Verwenden Sie die Eingabeaufforderung, um den neuen Dienst zu erstellen
Im nächsten Schritt verwenden Sie den Befehl Windows Service Controller (SC), um den neuen Dienst basierend auf den Kriterien in Ihrer Konfigurationsdatei zu erstellen. Öffnen Sie die Eingabeaufforderung, indem Sie mit der rechten Maustaste auf das Startmenü klicken (oder Windows + X drücken), „Eingabeaufforderung (Admin)“ auswählen und dann auf Ja klicken, um die Ausführung mit Administratorrechten zuzulassen.
Verwenden Sie an der Eingabeaufforderung die folgende Syntax, um den neuen Dienst zu erstellen:
SC CREATE Displayname = "" binpath = "srvstart.exe -c" start =
In diesem Befehl sind einige Dinge zu beachten. Zunächst hat jedes Gleichheitszeichen (=) ein Leerzeichen dahinter. Das ist erforderlich Auch die Wert liegt ganz bei Ihnen. Und schließlich für die
Wert, den Sie verwenden möchten
Auto
damit der Dienst automatisch mit Windows gestartet wird.
In unserem Plex-Beispiel würde der Befehl folgendermaßen aussehen:
SC CREATE Plex Displayname = "Plex" binpath = "srvstart.exe Plex -c C: PlexService.ini" start = auto
Ja, das hast du richtig gelesen: Ich habe es benutzt C: PlexService.ini
anstatt C: \ PlexService.ini
. Der Befehl erfordert, dass Sie den Schrägstrich entfernen.
Wenn Sie den Befehl ausführen, sollten Sie eine Erfolgsmeldung erhalten, wenn alles gut läuft.
Ab diesem Zeitpunkt wird Ihr neuer Dienst bei jedem Start von Windows ausgeführt. Wenn Sie die Windows-Dienste-Benutzeroberfläche öffnen (klicken Sie einfach auf Start und geben Sie "Dienste" ein), können Sie den neuen Dienst wie jeden anderen finden und konfigurieren.
Und das ist alles was dazu gehört. Wenn Sie über Apps verfügen, die mit Windows beginnen und lieber ohne Benutzer gestartet werden müssen, können Sie eine App ganz einfach in einen Dienst umwandeln. Wir haben gerade die grundlegende Methode zum Erstellen und Ausführen eines neuen Dienstes angesprochen, aber Sie können mit SrvStart noch viel mehr tun, um die Ausführung eines Dienstes zu optimieren. Lesen Sie die Dokumentation, wenn Sie mehr erfahren möchten.