AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Innerhalb eines Dienstes den Dienst selber beenden ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Innerhalb eines Dienstes den Dienst selber beenden ?!

Ein Thema von DataCool · begonnen am 25. Sep 2006 · letzter Beitrag vom 9. Jul 2008
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 25. Sep 2006, 15:32
Hi Leute,

ich habe einen Dienst der auf diversen Clients läuft.
Der Dienst ist von mir geschrieben und soll von Zeit zur Zeit auch upgedated werden.
Das führt mich zu dem Problem, das sich der Dienst bei einem bestimmten Kommando selbst beenden soll.
Damit meine Aktualisierung auch dann funktioniert, wenn der angemeldete Windows User nicht die Berechtigung hat den Dienst zu stoppen.

Hat jemand ne Idee ?

Danke und Gruß

Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
m.wollert

Registriert seit: 18. Aug 2003
Ort: Heilbronn
92 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 25. Sep 2006, 16:01
Hi,

wenn ich mich recht entsinne ist ein Dienst nichts anderes als eine ständige Schleife. Diese Schleife kannst Du mit Abbruchbedingungen simpel gezielt beenden.

Grüße!
Michael
*Im Auftrag ewiger Jugend und Glückseligkeit*
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 25. Sep 2006, 16:04
Hi,

dachte ich mir auch, allerdings habe ich kein Application.terminate oder ähnliches !

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#4

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 25. Sep 2006, 16:11
Urgs. Das wär ja auch Fatal.

Du musst den Status des Dienstes auf Stopped setzen. Damit beendet sich die Schleife selber.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 25. Sep 2006, 16:26
Hi,

besten Dank Phoenix das wars was ich gesucht habe.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#6

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 9. Jul 2008, 11:08
Zitat von Phoenix:
Urgs. Das wär ja auch Fatal.

Du musst den Status des Dienstes auf Stopped setzen. Damit beendet sich die Schleife selber.
Mit welchen Parametern wird das gemacht? stopped ist nicht definiert, false geht auch nicht

if bedingung then xyzservice.status := ?

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#7

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 9. Jul 2008, 11:40
Nein, du musst aus der Execute Methode rauskommen. Damit ist der Dienst beendet.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 9. Jul 2008, 11:51
@Emsländer:

self.Status := csStopped;

csStopped ist in der Unit "SvcMgr" definiert(ist bei mir in DElphi6 so)

Gruß DAta
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#9

Re: Innerhalb eines Dienstes den Dienst selber beenden ?!

  Alt 9. Jul 2008, 12:33
Zitat von DataCool:
@Emsländer:

self.Status := csStopped;

csStopped ist in der Unit "SvcMgr" definiert(ist bei mir in DElphi6 so)

Gruß DAta
Klappt!

Danke

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz