Batch per Batch einmal am Tag einen Prozess killen und neu starten?

wasd123

Lt. Commander
Registriert
März 2017
Beiträge
1.069
Moin!

Bei unseren Kunden haben wir ein Tool laufen, welches eigentlich nicht für 24/7 gemacht ist. Leider ist das den Kunden egal, welche teilweise über Monate hinweg den Rechner, und somit das Tool, nicht neu starten.
Schmiert besagtes Tool im falschen Augenblick ab, macht es mächtig Badabumbs und Ärger, aber genau das passiert eben irgendwann mal.

Leider stößt meine Bitte bei unserer Entwicklung auf taube Ohren, dem Tool selbst ein entsprechendes Feature einzuführen -> "der Kunde soll gefälligst den Rechner Abends runterfahren".

Also würde ich gerne eine Batch schreiben wollen, welche einfach in der Nacht (sollte der Rechner mal wieder angelassen werden), das entsprechende Tool (ne ganz normale EXE) beendet und dann neu startet.
Klar könnte ich in der Nacht auch einfach nen Restart oder Shutdown von Windows einleiten, aber ich möchte nur zu sehr in das Handeln der Kunden eingreifen.

Geht das irgendwie, eine bestimmte EXE abzuschießen?
 
Schau mal Taskkill an.

https://ss64.com/nt/taskkill.html

Laesst sich wunderbar "batchen" und per Aufgabenplanung steuern. Im einfachsten Fall so. Beachte, das dieser Code nur wirklich funktioniert, wenn er in einer laufenden Sitzung (angemeldeter Nutzer) ausgefuehrt wird.

Code:
@echo off
taskkill /IM notepad.exe
timeout /T 10
start notepad.exe

Rennt Euer Programm im Desktopmodus oder ist das auch als Service startbar?

Beschaeftige Dich mal mit -> http://runasservice.com/ (runasservice)
Wenn Euer Programm das packt, brauchst Du per Aufgabenplanung nur einen Service-Restart.

BFF
 
Zuletzt bearbeitet: (Ergaenzt)
Du kannst das auch mit dem Sysinternals (Microsoft) tool pskill benutzen und PsExec um das Programm wieder zu starten. Das lässt ich Ideal in ein Batch script einpacken hab ich in der Arbeit auch schon gemacht.
 
cbtestarossa schrieb:
Na hoffentlich schreibt das Tool nicht gerade irgendwo hin wenn du es abschießt
nene ;o). würde den Neustart in der Nacht machen. Daten werden zwar auch geschrieben, es geht aber eher um das Erreichbar sein des Tools. Ist es per Netzwerk nicht erreichbar, funktioniert nichts mehr. Nachts passiert dahingehend nichts.

Service geht auch, meide ich jedoch. Wenn ich es als EXE starte, ist das Tool im Windowstray zu sehen und ändert auch sein Aussehen, wenn es arbeitet. Das kann für den Kunden wichtig sein. Der Dienst würde ja nicht sichtbar sein.

Danke für die bisherigen Tipps. Ich schau mich da mal um
 
Inwiefern ist das Programm denn "nicht für 24/7 gemacht"? Leakt es Speicher oder ist es einfach nur buggy so dass es irgendwann instabil wird? Ist in beidem Fällen ein Bug den der Entwickler fixen sollte, auch wenn es ein ungewöhnlicher Use-case für diese Anwendung sein mag.

Einfach den Prozess abschießen ist ganz große Kacke, wie @cbtestarossa schon anmerkt. Irgendwann wird da mal Recovery gemacht oder sonstwas über Nacht und irgendwas schießt mitten in der Arbeit den Prozess ab.
Wegen Updates muss man eh regelmäßig neustarten, würde am ehesten dazu tendieren Sonntags oder so einfach mal die ganze Kiste neuzustarten, da hat das Programm bessere Chancen sich korrekt zu beenden.
 
Hi,

Wenn Eure Kunden mit Eurem Programm solch einen Schindluder betreiben, kann es nur gut sein es als Service rennen zu lassen. ;)

Die Aussage Eurer Entwicklung -> "der Kunde soll gefälligst den Rechner Abends runterfahren" kann u.U. verdammt teuer werden. Die Entwicklung hat sich zu kuemmern, dass das Programm zu jederzeit vollumfaenglich funktioniert. Unabhaengig vom Neustart oder herunter fahren des PC.

Schoenes WE.
BFF
 
  • Gefällt mir
Reaktionen: Spliffy83
Die Entwicklung kann sich um solche Belange nur kümmern, wenn entsprechende (nicht verrechenbare) Kapazitäten dafür freigegeben werden.
 
BFF schrieb:
Die Aussage Eurer Entwicklung -> "der Kunde soll gefälligst den Rechner Abends runterfahren" kann u.U. verdammt teuer werden. Die Entwicklung hat sich zu kuemmern, dass das Programm zu jederzeit vollumfaenglich funktioniert.
Das sehe ich nicht so.

Sicherlich ist das IMHO schlampige Arbeit und so eine Funktion gehört eigentlich überall dazu, aber wenn man das als Hersteller so vorgibt dann ist das nunmal das womit der Kunde leben muss, solange er darüber informiert ist.
Im Gegenteil würde ich da als Hersteller (zu dem der TE wohl gehört, wenn auch nicht Entwicklung sondern wohl eher Support)
Gar nichts machen.
@TE:
Aus den von @cbtestarossa genannten Gründen schießt es dir im Zweifel einen anderen laufenden Prozess weg. Da du das dann eingerichtet hast als Mittelsmann/Herstellermitarbeiter machst du daraus ein supportetes feature.
Damit bist du respektive der Hersteller auch in der Pflicht dafür den Support und im weiteren Sinne die Haftung für eine eventuelle Fehlfunktion mit Nebenwirkungen zu tragen.

Der Kunde betreibt das Produkt außerhalb der vorgegebenen Spezifikation. Da kann es nur eine Aussage geben, ohne sich in die Schusslinie zu stellen. Und die lautet:
Es tut uns Leid, sie befinden sich nicht in einem supporteten Szenario. Bitte betreiben Sie die Lösung innerhalb unserer Spezifikation. Andernfalls können wir für die Verfügbarkeit des Services keine Garantie übernehmen.

Da muss er sich zur Not die Batch halt selbst schreiben oder die Kiste per Task neu starten....

Allerdings:
Wenn eine Entwicklungsabteilung des Herstellers so eine Vorgabe machen würde, würde ich mir einen neuen Hersteller suchen. Das kann ja fast nur unausgegorenes Flickwerk sein, wenn so grundlegende Funktionen wie Dauerbetrieb nicht eingebaut und getestet sind...
 
  • Gefällt mir
Reaktionen: Marco01_809 und Valeria
Zurück
Oben