/ / Ausführen eines Programms als Hintergrunddienst in Windows

Ausführen eines Programms als Hintergrunddienst in Windows

aas_top

Wenn Sie wie die meisten Windows-Benutzer sind, haben Sie vielevon großen kleinen Dienstprogrammen, die ausgeführt werden, wenn Sie Windows starten. Dies funktioniert zwar für die meisten Apps sehr gut, es gibt jedoch einige, die Sie starten können, bevor sich ein Benutzer am PC anmeldet. Dazu müssen Sie die App als Windows-Dienst ausführen.

Windows-Dienste sind eine spezielle Programmklassedie so konfiguriert sind, dass sie im Hintergrund gestartet und ausgeführt werden, normalerweise ohne Benutzeroberfläche und ohne dass sich ein Benutzer am PC anmelden muss. Viele Gamer und Power-User kennen sie als die Dinge, die Sie deaktiviert haben, um Ihr System zu beschleunigen, obwohl dies wirklich nicht mehr erforderlich ist.

Der Hauptvorteil der Ausführung einer App alsDienst ist, dass Sie ein Programm starten können, bevor sich ein Benutzer anmeldet. Dies kann insbesondere bei Apps wichtig sein, die wichtige Dienste bereitstellen, die verfügbar sein sollen, wenn Sie nicht an Ihrem Computer sind.

Ein perfektes Beispiel hierfür ist Plex, ein MedienserverApp, die lokale Inhalte auf nahezu jedes Gerät streamen kann, das Sie besitzen. Sicher, Sie könnten es wie ein normales Programm in der Taskleiste lassen, aber was ist, wenn der Computer aufgrund eines Stromausfalls oder geplanter Updates neu gestartet wird? 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 zu starten, während Ihr Popcorn kalt wird, und sehr ärgerlich, wenn Sie nicht in der Stadt sind und versuchen, Ihre Medien über das Internet zu streamen. Das Einrichten von Plex as a Service würde dieses Problem lösen.

Bevor Sie beginnen, sollten Sie einige wichtige Vorbehalte beim Ausführen einer App als Service beachten:

  • Die App fügt kein Symbol in die Taskleiste ein. Wenn Sie die Schnittstelle regelmäßig für eine App benötigen, ist sie möglicherweise nicht für die Ausführung 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 beenden und den Dienst erneut starten.
  • Wenn das Programm bereits so eingerichtet ist, dass es wann ausgeführt wirdWindows wird gestartet. Sie müssen dies deaktivieren, damit nicht zwei Instanzen ausgeführt werden. Die meisten Programme haben in der Benutzeroberfläche eine Option zum Umschalten dieser Einstellung. Andere fügen sich möglicherweise selbst zu Ihrem Startordner hinzu, sodass Sie sie dort entfernen können.

Bereit loszulegen? Lassen Sie uns darüber sprechen, wie Sie es einrichten.

Erster Schritt: Installieren Sie SrvStart

Um eine App als Dienst auszuführen, müssen Sieein kleines Dienstprogramm von Drittanbietern. Es gibt mehrere, aber unser Favorit ist SrvStart. Es wurde ursprünglich für Windows NT entwickelt und funktioniert mit nahezu jeder Windows-Version ab Windows XP.

Beginnen Sie mit dem SrvStartDownload-Seite und greifen Sie das Dienstprogramm. Der Download enthält nur vier Dateien (zwei DLL- und zwei EXE-Dateien). Es gibt kein Installationsprogramm. Kopieren Sie diese stattdessen auf Ihren Computer C:Windows Ordnen Sie diese in Ihrem Windows-Hauptordner ein, um SrvStart zu "installieren".

aas_4

Wir gehen auch davon aus, dass Sie bereits ein Programm installiert und eingerichtet haben, das Sie in einen Dienst verwandeln möchten. Wenn Sie dies nicht tun, ist jetzt auch ein guter Zeitpunkt, dies zu tun.

Schritt 2: Erstellen Sie eine Konfigurationsdatei für den neuen Dienst

Als Nächstes möchten Sie eine Konfigurationsdatei erstellenDieser SrvStart liest, um den Dienst zu erstellen. Mit SrvStart können Sie eine Menge tun, und Sie können die vollständigen Details zu allen Konfigurationsoptionen auf der Dokumentationsseite lesen. In diesem Beispiel werden nur zwei Befehle verwendet: startup, das das zu startende Programm angibt, und shutdown_method, der SrvStart mitteilt, wie das Programm geschlossen wird, wenn der jeweilige Dienst beendet wird.

Starten Sie Notepad und erstellen Sie Ihre Konfigurationsdatei im folgenden Format. In diesem Fall verwenden wir Plex. Sie können jedoch eine Datei für jedes Programm erstellen, das Sie als Dienst ausführen möchten. Das startup 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 SrvStart veranlasst, eine Windows-Schließmeldung an alle vom Dienst geöffneten Fenster zu senden.

[Plex]
startup="C:Program Files (x86)PlexPlex Media ServerPlex Media Server.exe"
shutdown_method=winmessage

Passen Sie den Pfad und den Namen natürlich an das Programm an, das Sie starten.

aas_1_v2

Speichern Sie die neue Konfigurationsdatei an einem beliebigen Ortund ersetzen Sie die Erweiterung .txt durch eine Erweiterung .ini. Notieren Sie sich den Dateinamen, da er im nächsten Schritt benötigt wird. Um die Eingabe an der Eingabeaufforderung zu vereinfachen, empfehlen wir, diese Datei vorübergehend direkt auf Ihrem Laufwerk C: zu speichern.

Schritt 3: Verwenden Sie die Eingabeaufforderung, um den neuen Dienst zu erstellen

Ihr nächster Schritt ist die Verwendung des Windows-DienstesController (SC) -Befehl zum Erstellen des neuen Dienstes basierend auf den Kriterien in Ihrer Konfigurationsdatei. Ö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.

tl_start

Verwenden Sie an der Eingabeaufforderung die folgende Syntax, um den neuen Dienst zu erstellen:

SC CREATE <servicename> Displayname= "<servicename>" binpath= "srvstart.exe <servicename> -c <path to srvstart config file>" start= <starttype>

In diesem Befehl sind einige Dinge zu beachten. Zuerst hat jedes Gleichheitszeichen (=) ein Leerzeichen danach. Das ist erforderlich. Auch der <servicename> Wert liegt ganz bei Ihnen. Und schließlich für die <starttype> Wert, den Sie verwenden möchten auto Damit startet der Dienst automatisch mit Windows.

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 von C:PlexService.ini . Für den Befehl müssen Sie den Schrägstrich entfernen.

Wenn Sie den Befehl ausführen, sollten Sie eine SUCCESS-Nachricht erhalten, wenn alles gut geht.

aas_2

Ab diesem Zeitpunkt wird Ihr neuer Dienst ausgeführtwann immer Windows startet. Wenn Sie die Windows-Dienste-Oberfläche öffnen (klicken Sie einfach auf Start und geben Sie "Dienste" ein), können Sie den neuen Dienst wie jeden anderen finden und konfigurieren.

aas_3

Und das ist alles was dazu gehört. Wenn Sie Apps haben, die mit Windows beginnen, und Sie möchten, dass sich kein Benutzer anmelden muss, können Sie jede App ganz einfach in einen Dienst verwandeln. Wir haben gerade erst die grundlegende Methode zum Erstellen und Ausführen eines neuen Dienstes angesprochen. Mit SrvStart können Sie jedoch noch viel mehr tun, um die Ausführung eines Dienstes zu optimieren. Lesen Sie unbedingt die Dokumentation, wenn Sie mehr erfahren möchten.