![]() |
Service neustarten, aber wie?
Hallo!
Gibt es eine möglichkeit, einen Service über die Kommandozeile o.ä. neu zu starten? Habe einen Service geschrieben, der sich aber alle ca. 96 Std. neu starten sollte, um den nicht mehr benötigten Speicher freizugeben. Gibt's da ne Möglichkeit? Danke! Gruß Matthias |
Re: Service neustarten, aber wie?
Hi,
Services startest Du (unter NT/W2K/XP) von der Commandline mit
Code:
Sind Leerzeichen im Servicenamen, dann muss dieser in Anführungszeichen gesetzt werden.
NET START [Service]
Beispiel:
Code:
NET START "Remote Procedure Call (RPC) Service"
|
Re: Service neustarten, aber wie?
Hi!
Danke! Aber gibt's da nicht ne Möglichkeit, den Service direkt neu zu starten, also irgendwas in die Richtung: net restart Servicename ?? Gruß Matthias |
Re: Service neustarten, aber wie?
Hmm, wäre bestimmt 'ne nette Erweiterung für NET START. Aber solch eine Möglichkeit ist mir nicht geläufig. Ich glaub' da müsstest Du schon was entsprechendes schrauben... Vielleicht gibt's da aber auch schon was von "Freeware" oder so. Google doch einfach mal.
|
Re: Service neustarten, aber wie?
Kann ich denn aus einem Service heraus eine Batch-Datei ausführen?
Habe es bei mir so versucht:
Delphi-Quellcode:
Aber das funktioniert irgendwie nicht. Wo ist da mein Fehler, oder kann ich von einem Service aus gar keine Batch-Datei ausführen?
ShellExecute(0, 'open', PChar('test.bat'), nil, nil, SW_HIDE);
Danke! Gruß Matthias |
Re: Service neustarten, aber wie?
Hallo Matthias,
Bat-Dateien im Service funktionieren schon, allerdings ist die Frage, was in der Bat-Datei "drinnen" ist. Ein Service läuft in einem eigenen unsichtbaren Desktop im System-Kontext, wenn Deine Bat-Datei nun ein Programm mit Gui startet wirst Du es nie zu sehen bekommen. Außerdem empfehle ich Dir, in Verbindung mit ShellExecute immer mit der vollen Pfadangabe zu arbeiten. Zum Debuggen Deines Services (z.B. Rückgabewert von ShellExecute anzeigen) versuche mal Sakuras:
Delphi-Quellcode:
[EDIT]
PROCEDURE DebugMsgBox(aMsgStr: AnsiString);
// (c) Sakura // MessageBox aus non-interactive Anwendungen (z.B. Services, COM-Server,...) BEGIN MessageBox(0, PAnsiChar(aMsgStr), PAnsiChar('DebugMessage from: ' + srvFLAPPService.DisplayName), MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION); END; Wenn Du ein Service neustarten möchtest, kannst Du Dir dazu ja selbst eine kleine Applikation schreiben. Sakura hat die fertige Tool-Sammlung ![]() [/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz