Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Windows Dieses Forum dient den Diskussionen rund um alle Microsoft-Betriebssysteme.

Prozess sanft beenden

Diskussion: Prozess sanft beenden im Forum Windows, in der Kategorie Operating Systems; Anzeige Moin! Ich habe einen Javaprozess, der über eine Batch gestartet wird. Diesen möchte ich nun von außerhalb sanft beenden ...

Antwort
Alt 06.09.09, 23:40   #1 (permalink)
 
Registriert seit: 06.06.09
Thunderb0lt Leistung: 8086
Likes: 6
Smile Prozess sanft beenden

Anzeige

Moin!

Ich habe einen Javaprozess, der über eine Batch gestartet wird. Diesen möchte ich nun von außerhalb sanft beenden (wenn bestimmte Voraussetzungen erfüllt sind). Es sollen also noch alle Daten gespeichert werden können. Das macht die Anwendung, wenn ich in dem Konsolenfenster STRG + C drücke.

Ich möchte das ganze aber ja automatisieren und dabei nach Möglichkeit verhindern ein eigenes Programm schreiben zu müssen. Ich habe es schon mit "taskkill" versucht, aber auch ohne den Parameter "/F" schießt es das Programm schon ab, sodass keine Daten mehr gespeichert werden.

__________________
A good programmer looks both ways before crossing a one-way street.

Die Politik kann uns nur für so dumm verkaufen, wie wir sind.
Thunderb0lt ist offline   Mit Zitat antworten
Alt 07.09.09, 01:02   #2 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 443
Standard

Signal-Handler dürften dir helfen. Einfach die Handler-Routine für die Kill-Signale auf dein Programm umbiegen und den Handler das Speichern der Daten übernehmen lassen.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 07.09.09, 11:19   #3 (permalink)
.doc
Guest
 
Likes:
Standard

Schau dir in Bezug auf bitmunchers Post die Klasse Runtime in den JavaDocs an: http://java.sun.com/j2se/1.4.2/docs/...g/Runtime.html
Allerdings kommt es darauf an, welches Signal du sendest, d.h. SIGSEGV u.ä. sind meines Wissens noch nicht direkt im Programm erkennbar. Signale, welche vom user gesendet werden und einen Shutdown verursachen sollen solltest du aber mit der Funktion addShutdownHook aus der Klasse Runtime erkennen können und daraufhin einen sauberen Shutdownvorgang starten.
  Mit Zitat antworten
Alt 07.09.09, 18:29   #4 (permalink)
Themenstarter
 
Registriert seit: 06.06.09
Thunderb0lt Leistung: 8086
Likes: 6
Standard

Hmm, ich habe mich wohl etwas missverständlich ausgedrückt. Das Java Programm, welches da läuft ist keines von mir, bei dem ich jetzt Änderungen vornehmen könnte.
Ich suche nach einer Möglichkeit es so, wie es jetzt geschrieben ist, von außerhalb zu beenden. Ich will es aber nicht abschießen, sondern es soll sich sauber beenden um Datenverlust zu verhindern.
__________________
A good programmer looks both ways before crossing a one-way street.

Die Politik kann uns nur für so dumm verkaufen, wie wir sind.
Thunderb0lt ist offline   Mit Zitat antworten
Alt 07.09.09, 19:04   #5 (permalink)
Senior Member
 
Registriert seit: 13.07.08
enkore Leistung: K 6-3enkore Leistung: K 6-3enkore Leistung: K 6-3
Likes: 85
Standard

Dekompilieren?
__________________
"It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."
+++ BREAKING +++ Troll ertrinkt im Planschbecken +++
enkore ist offline   Mit Zitat antworten
Alt 07.09.09, 19:20   #6 (permalink)
Themenstarter
 
Registriert seit: 06.06.09
Thunderb0lt Leistung: 8086
Likes: 6
Standard

Wie gesagt, will ich es vermeiden das Programm zu ändern.
__________________
A good programmer looks both ways before crossing a one-way street.

Die Politik kann uns nur für so dumm verkaufen, wie wir sind.
Thunderb0lt ist offline   Mit Zitat antworten
Alt 07.09.09, 20:11   #7 (permalink)
.doc
Guest
 
Likes:
Standard

Das einzige, was mir noch einfällt, wäre ein Programm, welches einen User simuliert, der den Beenden-Button drückt..
  Mit Zitat antworten
Alt 07.09.09, 21:18   #8 (permalink)
Themenstarter
 
Registriert seit: 06.06.09
Thunderb0lt Leistung: 8086
Likes: 6
Standard

Hmm, damit, dass das doch so kompliziert wird, hätte ich dann nicht gerechnet. Ich werde mal schauen, was ich dann jetzt für eine Lösung nehmen werde. Vielleicht fällt ja jemandem doch noch etwas ein..

Danke auf jeden Fall für eure Vorschläge!
__________________
A good programmer looks both ways before crossing a one-way street.

Die Politik kann uns nur für so dumm verkaufen, wie wir sind.
Thunderb0lt ist offline   Mit Zitat antworten
Alt 07.09.09, 21:27   #9 (permalink)
.doc
Guest
 
Likes:
Standard

Die Frage ist, inwiefern du einen sauberen Shutdown nicht auch durch etwas anderes erreichen kannst.
Ein Beispiel aus meiner Erfahrung vor kurzem:
gnome-keyring-daemon beendet sich ca. 70sek nach Start der Oberfläche mit einem segfault (Ursache liegt aller vorraussicht nach an HAL). Leider werden die von gkd erstellten Umgebungsvariablen nicht wieder gelöscht, wesshalb ein einfacher Neustart des Deamons zu keiner Verbesserung führt ("Old daemon running..."). Legt man allerdings nun einen Symlink mit dem Namen der Datei, die in der Umgebungsvariablen steht, an und lässt ihn auf die neuen Dateien zeigen funktioniert alles wieder. Kleiner Hack um das Problem zu umgehen, vielleicht könntest du ähnliches machen
  Mit Zitat antworten
Alt 13.09.09, 18:19   #10 (permalink)
Themenstarter
 
Registriert seit: 06.06.09
Thunderb0lt Leistung: 8086
Likes: 6
Standard

Ich habe mir das jetzt nochmal genauer angeschaut. Es scheint mir so, als ob die Signale von der JVM selbst gehändelt werden und dann eben ggf. die registrierten Shutdownhooks aufgerufen werden. Ist das so korrekt?

Wenn dem so ist, dann müsste ich ja das Signalhandling überschreiben. Ein korrekter Shutdownhook existiert ja bereits, wird wohl nur nicht in allen Fällen ausgeführt.
__________________
A good programmer looks both ways before crossing a one-way street.

Die Politik kann uns nur für so dumm verkaufen, wie wir sind.
Thunderb0lt ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Windows » Prozess sanft beenden
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
prozess automatisch beenden Antibus Windows 3 21.06.07 18:35
Prozess mit Batch beenden nasir Code Kitchen 9 04.06.06 00:24
Prozess beenden in C/C++ Fruetschi Code Kitchen 1 28.01.06 16:25
Prozess(bzw Child) beenden... PeaceTreaty Code Kitchen 0 07.05.02 10:57


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61