wulfguard
Goto Top

Per Taskkill Dienst beenden der keine CPU Last hat

Hi,

ich habe folgendes Problem.

ich muss im Rahmen meiner Arbeit regelmäßig Dienste beende (Update der Dienstversion). Es handelt sich hierbei um Dienste, welche Exceldateien in eine Datenbank importiert. Diese Dienste sollte ich aber nur beenden, wenn gerade kein Import statt findet. Als Kriterium hierfür schaue ich mir im Taskmanger die CPU Last des Dienstes an und sobald diese auf Null geht, beende ich den Dienst. Nun würde ich das gerne z.B. über den Befehl Taskkill im Rahmen eines kleinen Scriptes machen. Leider finde ich in der Beschreibung von Taskkill keinen Filter, welcher die CPULast berücksichtigt.

Weiß hier jemand Rat?

Content-Key: 164545

Url: https://administrator.de/contentid/164545

Printed on: April 19, 2024 at 13:04 o'clock

Mitglied: 60730
60730 Apr 13, 2011 at 23:19:27 (UTC)
Goto Top
moin,

der erste ist auch der einfachste und beste Rat..

Sorg dafür, dass das Excel Datenbankschubswerkzeug sich nach dem importieren selber beendet.

  • Würgarounds für Hintenrum - dafür ist Batch zu schade.

Gruß
Member: Connor1980
Connor1980 Apr 14, 2011 at 06:12:10 (UTC)
Goto Top
Hi,

von T.Beils Einwand mal abgesehen
ich muss im Rahmen meiner Arbeit regelmäßig Dienste beende
würde ich das gerne z.B. über den Befehl Taskkill

dafür gibt es "sc". taskkill "schießt ab", wie der Name quasi schon verrät face-wink

Grüße
Member: Wulfguard
Wulfguard Apr 14, 2011 at 19:32:38 (UTC)
Goto Top
@timobeil
Da würden sich meine Kunden aber bedanken. Der Dienst scannt permanent fest definierte Ordner ab und importiert alle Excel Datei, die er dort findet und das soll er solange machen bis das ich ein Update der Dienst EXE einspiele => Keine Lösung

@Connor1980
gibt es den für SC eine Filtereinstellung, welche den Dienst dann beendet, wenn dieser gerade keine CPU nutzt , also sich im Leerlauf befindet. Also ich kenne keine Option bei SC, die mir dies ermöglicht, lasse mich aber gerne eines besseren belehren. Einfach so Dienst beende wenn er importiert, ist keine gute Idee, da es so schon mehrere negative Effekte gab(z.B. Dienst lässt sich erst wieder starten nach Server reboot, oder die Datei war anschließend kaput usw.
Mitglied: 99045
99045 Apr 14, 2011 at 19:48:53 (UTC)
Goto Top
Hi,

wie wäre es denn, wenn man sich die Optionen zu SC mal ansieht?
Manchmal komme ich mir vor wie im Kindergarten ......

Dienste anhalten und starten geht übrigens auch mit net stop bzw net start. Auch dazu gibt es eine Hilfe.

Gruß
Member: Wulfguard
Wulfguard Apr 15, 2011 at 17:56:35 (UTC)
Goto Top
So hier ist die Beschreibung ich finde hier nichts was mein Problem beschreibt. Auch über NET STOP gibt es nicht die Möglichkeit einen Dienst in Abhängigkeit seiner CPU Last zu beenden(Meiner Kenntnis nach) . May be wäre es schön wenn der Kindergarten (IRONIE TAG) einen Vorschlag auf mein Problem hat und keine Standard Antworten gibt Ala Man kann einen Dienst per SH und Net Stop beenden. Das weiß ich auch, aber löst mein Problem nicht und zeigt mir man hat sich meine Frage gar nicht durchgelesen.


BESCHREIBUNG:
SC ist ein Befehlszeilenprogramm für die Kommunikation mit dem
Dienststeuerungs-Manager und mit Diensten.
SYNTAX:
sc <Server> [Befehl] [Dienstname] <Option1> <Option2>...


Die Option <Server> hat das Format "\\ServerName"
Weitere Hilfe zu Befehlen kann abgerufen werden durch Eingabe von:
"sc [Befehl]"
Befehle:
query-----------Fragt den Status eines Diensts ab oder
listet den Status für Typen von Diensten auf.
queryex---------Fragt den erweiterten Status eines Diensts ab oder
listet den Status für Typen von Diensten auf.
start-----------Startet einen Dienst.
pause-----------Sendet eine Steuerungsanfrage PAUSE an einen
Dienst.
interrogate-----Sendet eine Steuerungsanfrage INTERROGATE an
einen Dienst.
continue--------Sendet eine Steuerungsanfrage CONTINUE an einen
Dienst.
stop------------Sendet eine Steuerungsanfrage STOP an einen
Dienst.
config----------Ändert die Konfiguration eines Diensts
(beständig).
description-----Ändert die Beschreibung eines Diensts.
failure---------Ändert die Aktionen beim Scheitern eines
Diensts.
failureflag-----Ändert das Fehleraktionskennzeichen eines Diensts.
sidtype---------Ändert den Diensttyp SID eines Diensts.
privs-----------Ändert die erforderlichen Berechtigungen eines
Diensts.
qc--------------Fragt die Konfigurationsinformationen eines
Diensts ab.
qdescription----Fragt die Beschreibung eines Diensts ab.
qfailure--------Fragt die Aktionen ab, die bei einem
Dienstfehler ausgeführt werden.
qfailureflag----Fragt das Fehleraktionskennzeichen eines Diensts ab.
qsidtype--------Fragt den Diensttyp SID eines Diensts ab.
qprivs----------Fragt die erforderlichen Rechte eines Diensts ab.
qtriggerinfo----Fragt die Triggerparameter eines Diensts ab.
qpreferrednode--Fragt den bevorzugten Knoten NUMA eines Diensts ab.
delete----------Löscht einen Dienst (aus der Registrierung).
create----------Erstellt einen Dienst (fügt ihn zur Registrierung
hinzu).
control---------Sendet eine Steuerung an einen Dienst.
sdshow----------Zeigt die Sicherheitsbeschreibung eines Diensts
an.
sdset-----------Legt die Sicherheitsbeschreibung eines Diensts
fest.
showsid---------Zeigt die SID des Diensts, passend zu einem zufälligen

Namen an.
triggerinfo-----Konfiguriert die Triggerparameter eines Diensts.
preferrednode---Legt den bevorzugten Knoten NUMA eines Diensts fest.
GetDisplayName--Ruft den DisplayName für einen Dienst ab.
GetKeyName------Ruft den ServiceKeyName für einen Dienst ab.
EnumDepend------Listet die Dienstabhängigkeiten auf.

Die folgenden Befehle benötigen keinen Dienstnamen:
sc <Server> <Befehl> <Option>
boot------------(ok | bad) Zeigt an, ob der letzte Neustart als
letzte als funktionierend bekannte Konfiguration
gespeichert werden soll.
Lock------------Sperrt die Dienstdatenbank.
QueryLock-------Fragt den LockStatus der SCManager-Datenbank ab.
BEISPIEL:
sc start MeinDienst

Soll die Hilfe für die Befehle QUERY und QUERYEX angezeigt werden?
[ j | n ]:
j

QUERY- und QUERYEX-OPTIONEN:
Wenn auf die Abfrage ein Dienstname folgt, wird der Status für
diesen Dienst zurückgegeben. In diesem Fall treten keinen weiteren
Optionen auf. Wenn auf die Abfrage nichts oder eine der unten
aufgelisteten Optionen folgt, werden die Dienste aufgelistet
type= Typ der aufzulistenden Dienste (Treiber, Dienst, Alle)
(Standard = Dienst)
state= Status der aufzulistenden Dienste (nicht aktiv, Alle)
(Standard = Aktiv)\n"
bufsize= Die Größe (in Bytes) des Auflistungspuffers
(Standard = 4096)
ri= Die Indexnummer zum Fortsetzen, ab der die Auflistung beginnen
soll\n"
(Standard = 0)
group= Aufzulistende Dienstgruppe
(Standard = Alle Gruppen)

SYNTAX BEISPIELE
sc query - Listet den Status aktiver Dienste und Treiber
sc query messenger - Zeigt den Status des Messenger-Dienstes
sc queryex messenger - Zeigt den erweiterten Status des Messenger-Dienstes
sc query type= driver - Listet nur aktive Treiber auf
sc query type= service - Listet nur Win32-Treiber auf
sc query state= all - Listet alle Dienste & Treiber auf
sc query bufsize= 50 - Listet mit einem 50 Byte Puffer auf
sc query ri= 14 - Listet mit Index zum Fortsetzen = 14
sc queryex group= \"\" - Listet aktive Dienste die nicht einer Gruppe
angehören auf
sc query type= service type= Listet alle interaktiven Dienste auf
sc query type= driver group= NDIS - Listet alle NDIS-Treiber
Mitglied: 99045
99045 Apr 15, 2011 at 18:21:31 (UTC)
Goto Top
Danke, dass du mir den Output der Hilfe zu SC präsentierst, aber ich kann selbst mit meiner Konsole umgehen. Auf eine hilfreiche Antwort musst du aber leider vergeblich warten. Was macht man wohl, wenn Programme keinen Filter anbieten? Selbstmord, besaufen, auswandern? Also ich würde mal mit den vorhanden Möglichkeiten testen, und vor allen Dingen würde ich mal im Technet nach weiteren Informationen suchen.

Habe die Ehre ......
Mitglied: 60730
60730 Apr 15, 2011 at 18:36:24 (UTC)
Goto Top
Zitat von @Wulfguard:
@timobeil
Da würden sich meine Kunden aber bedanken. Der Dienst scannt permanent fest definierte Ordner ab und importiert alle Excel
Datei, die er dort findet und das soll er solange machen bis das ich ein Update der Dienst EXE einspiele => Keine Lösung

Wenn du es schaffen würdest deine Infos einzeln in Häppchen zu packen....

In der Welt der schreibenden Zunft nennt man sowas Absatz.......

dann hätte man auch auf den ersten Blick verstanden, was du willst....

  • mache eine Abfrage, ob es xls Dateien gibt
  • gibt es keine mehr - trenne die Verbindung zwischen xls Pfad und dem Dienst
  • stoppe den Dienst
  • aktualisiere Ihn
  • stelle die Laufwerksverbindung wieder her
  • starte den Dienst

btw: Openfiles sagt einem, wer welche Dateien auf hat.....

sei mir nicht böse, aber Taskkill im Bezug auf Dienste, das nennen von den SC Parametern - für welche Firma arbeitest du - nicht das wir auch eure Kunden sind...

andere Entwickler bauen Trigger in die Software, die sie dann beim aktualisieren auslesen und andere starten batches....
N8
Member: Wulfguard
Wulfguard Apr 15, 2011 at 19:21:55 (UTC)
Goto Top
Danke nun habe ich endlich eine Antwort mit der ich etwas anfangen kann ;)