Prozess automatisch beenden

luca.rath

Mitglied
Hallo,

Ich programmiere ein Netzwerk-Tool, welches mir erlaubt, CMD-Befehle auf einem anderen Rechner auszuführen. Um den Befehl auf der ferngesteuerten Maschine auszuführen, verwende ich folgende Anweisung.
Java:
ProcessBuilder pb = new ProcessBuilder("cmd", "/C", "\"" + line + "\"");
pb.directory(dir);
pb.redirectErrorStream(true);

Process p = pb.start();
Wenn jemand jetzt aber z.B. den Befehl "cmd", "powershell", oder ähnliche Prozesse, welche sich nicht automatisch beenden an den Computer sendet, wartet mein Programm auf den Prozess, da dieser ja nicht beendet wird.

Betroffen sind alle Prozesse, bei denen sich ein Fenster öffnet und nicht wieder automatisch schließt, wenn man den Befehl im Dialogfenster "Ausführen" unter Windows eingibt.

Meine Frage ist jetzt, ob es eine Möglichkeit gibt, solche Prozesse unter Java zu erkennen und die Ausführung zu verhindern.

Vielen Dank!
Mit freundlichen Grüßen,
Luca
 

luca.rath

Mitglied
Nein, START hilft mir leider nicht weiter, da mein Programm nicht nur Prozesse ausführen soll, sondern auch ein vollwertiges CMD-Fenster ersetzen können muss.

Vielen Dank für deine Antwort!
Mit freundlichen Grüßen,
Luca
 

Janrupf

Mitglied
Das ganze wird nicht so funktionieren, du könntest höchstens ein Timeout angeben nachdem der Process gekillt werden soll wenn er noch läuft. Oder du gibst dem user die möglichkeit eine Art STRG + C zu übergeben was den Process ebenfalls killt.

Edit: Schau doch dir mal so Sachen an wie "andere Processe mit Java steuern" u.s.w. Dort kannst du dann auch mit den Process interagieren (zu mindest per Commandozeil)
 

luca.rath

Mitglied
Ich habe mich jetzt für eine andere Vorgehensweise entschieden. Anstatt bei jedem ankommenden Befehl des Clients einen neuen Prozess zu starten, starte ich jetzt am Anfang einmal "cmd" als Prozess und kopiere den InputStream vom Socket in den OutputStream des Prozesses und den InputStream des Prozesses wieder in den OutputStream des Sockets. Das funktioniert auch recht gut.

du könntest höchstens ein Timeout angeben nachdem der Process gekillt werden soll
Das würde auch nicht funktionieren, da der Benutzer die Möglichkeit haben muss, z.B. 30 Pings an Google zu senden.

Vielen Dank!
Mit freundlichen Grüßen,
Luca
 

Underpay0299

Mitglied
Das Zauberwort lautet Multithread
Java:
  Thread cmdThread = new Thread(() -> {
    //Deine Befehle
  });
  cmdThread.start();
 
Zuletzt bearbeitet:

luca.rath

Mitglied
Multithreading hilft mir hier leider auch nicht weiter, da dann zwei Prozesse verschiedene Ausgaben zur selben Zeit machen könnten und beim Benutzer whürdke irglendkein Gewkirr rauskfommen. Ich hoffe, dass ich es anhand dieses Beispiels verdeutlichen konnte. :)
Ich habe mich jetzt für eine andere Vorgehensweise entschieden. Anstatt bei jedem ankommenden Befehl des Clients einen neuen Prozess zu starten, starte ich jetzt am Anfang einmal "cmd" als Prozess und kopiere den InputStream vom Socket in den OutputStream des Prozesses und den InputStream des Prozesses wieder in den OutputStream des Sockets. Das funktioniert auch recht gut.
Wie schon erwähnt, funktioniert genannte Methode sehr gut und ich werde es dabei belassen.

Vielen Dank!
Mit freundlichen Grüßen,
Luca
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
J Warten bis cmd Prozess fertig ist Allgemeine Java-Themen 2
R PIPE Kommunikation mit Prozess blockiert Allgemeine Java-Themen 0
L Java Web Start - generierter Prozess Allgemeine Java-Themen 4
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
A Linux: Native Library mit Rootrechten ohne Prozess mit sudo zu starten Allgemeine Java-Themen 1
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
Thallius Neuen Prozess starten, der auch nach Beedingung des Starter-Prozesses weiterläuft? Allgemeine Java-Themen 5
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
D Grafisches Frontend zu einem Java Prozess erstellen Allgemeine Java-Themen 0
D neuen Prozess starten und anwendung beenden. Allgemeine Java-Themen 3
L Java Prozess 100% -> Analyse Allgemeine Java-Themen 2
P Scanner als Inputstream für Java Prozess Allgemeine Java-Themen 4
J Aktuellen Prozess herausfinden. Allgemeine Java-Themen 3
GUI-Programmer Prozess eine Bezeichnung geben Allgemeine Java-Themen 3
M Einen Prozess "crashen" lassen Allgemeine Java-Themen 9
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
E externen Prozess schließen, wenn Programm geschlossen wird Allgemeine Java-Themen 2
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
Nicer Prozess über Prozessnamen beenden Allgemeine Java-Themen 15
K Prozess starten, überwachen und beenden Allgemeine Java-Themen 4
O Wie laufenden Prozess einfangen? Allgemeine Java-Themen 7
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
D Shell-Prozess lässt Thread nicht enden Allgemeine Java-Themen 4
0din Prozess einer .jar umbenennen Allgemeine Java-Themen 7
data89 Java als Boot-Prozess/Daemon? Allgemeine Java-Themen 6
reibi Kill eines Java-Prozesses und Stop-Prozess Allgemeine Java-Themen 3
T In der JVM einen weiteren, unabhängigen Prozess starten Allgemeine Java-Themen 11
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
Y ProcessBuilder, Prozess wird gestartet, aber Anwendung nicht Allgemeine Java-Themen 5
M String an externen Prozess senden/auslesen Allgemeine Java-Themen 25
T Prozess beenden Allgemeine Java-Themen 3
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
G Prozess direkt starten beim Start des Appservers Allgemeine Java-Themen 3
G Prozess-Status Allgemeine Java-Themen 8
H Kommunikation mit einem c-Prozess funzt nicht richtig Allgemeine Java-Themen 5
L Zugriff auf anderen Prozess der VM Allgemeine Java-Themen 9
C nur einen Prozess eines Programmes erlauben Allgemeine Java-Themen 8
S was passiert bei diesem filereader prozess Allgemeine Java-Themen 2
A Java Prozess in neuer JVM Allgemeine Java-Themen 8
K Prozess-Visualisierung: Stichwörter gesucht Allgemeine Java-Themen 4
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
S Prozess javaw.exe läuft immer noch, obwohl Programm beendet Allgemeine Java-Themen 6
M Thread als eigenständiger Linux Prozess mit PID Allgemeine Java-Themen 8
clemente Swing Applikation killt kwin Prozess (unter Linux / KDE) Allgemeine Java-Themen 3
M Zweiten Prozess in Java starten! Allgemeine Java-Themen 5
R Kontrolle über Externe Prozess Allgemeine Java-Themen 5
G Prozess beenden, wenn er hängt Allgemeine Java-Themen 9
S Wie eine Anwendung als neuer Prozess starten? Allgemeine Java-Themen 8
P wie beende ich einen prozess? Allgemeine Java-Themen 3
S blockierenden Prozess stoppen Allgemeine Java-Themen 13
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
P Strukturänderungen/abnormalien in Logfiles automatisch erkennen Allgemeine Java-Themen 5
F Java automatisch ausführen Allgemeine Java-Themen 3
ms_cikar RS232 Serielle Baudrate automatisch einstellen Allgemeine Java-Themen 1
M String automatisch in nächste Zeile umbrechen (Graphics) Allgemeine Java-Themen 6
T Automatisch Mails versenden Allgemeine Java-Themen 4
B automatisch benannte arrays erstellen Allgemeine Java-Themen 9
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
F paintComponent() nicht automatisch ausführen? Allgemeine Java-Themen 5
das-mo Dokument automatisch ausfüllen Allgemeine Java-Themen 8
L Links aus dem Inet-Browser automatisch anklicken lassen Allgemeine Java-Themen 5
A Jasperreports automatisch ausführen lassen Allgemeine Java-Themen 5
A Login-Daten Formular automatisch ausfüllen Allgemeine Java-Themen 10
S Programm das automatisch ungenutzten Source-Code entfernt..? Allgemeine Java-Themen 4
Iron Monkey JNLP nach Änderung automatisch aktualisieren Allgemeine Java-Themen 18
F Klassendiagramm / UML Diagramm automatisch erstellen Allgemeine Java-Themen 3
F WebBrowser Button automatisch drücken Allgemeine Java-Themen 5
K Eclipse automatisch Projekte cleanen und builden lassen Allgemeine Java-Themen 5
TiME-SPLiNTER Binary BufferedImage automatisch croppen Allgemeine Java-Themen 4
N Jlabel automatisch anpassen Allgemeine Java-Themen 3
M Java Klasse automatisch starten Allgemeine Java-Themen 3
V Java-Programm automatisch starten Allgemeine Java-Themen 2
B Abfrage ob JRE installiert ist, JAR automatisch starten Allgemeine Java-Themen 5
S Automatisch SerialUIDs einfuegen? Allgemeine Java-Themen 2
M KML Datei automatisch erzeugen Allgemeine Java-Themen 3
G Objekte automatisch casten Allgemeine Java-Themen 10
Escorter StringBuilder automatisch? Allgemeine Java-Themen 7
C Bilder automatisch bearbeiten/manipulieren Allgemeine Java-Themen 2
J Itext , Spaltenbreite automatisch anpassen ? Allgemeine Java-Themen 4
C JTree: Nodes automatisch öffnen Allgemeine Java-Themen 2
X Punktwolke im euklidischen Raum automatisch clustern. Allgemeine Java-Themen 2
M Gibt es ein Jar - das alle Componente Automatisch anpasst? Allgemeine Java-Themen 14
P Button automatisch drücken Allgemeine Java-Themen 5
G Dienst automatisch angehalten Allgemeine Java-Themen 2
D IE6 schließt automatisch nach Installieren des Java 1.6.0_02 Allgemeine Java-Themen 7
G JRE automatisch downloaden und installieren Allgemeine Java-Themen 4
L Java app läuft under win xp, automatisch auch unter vista32 Allgemeine Java-Themen 14
G UML automatisch erzeugen lassen Allgemeine Java-Themen 2
S Java greif automatisch auf Classpath zu Allgemeine Java-Themen 2
B Html Formulare mittels Java automatisch senden Allgemeine Java-Themen 5
B Schlüssel von Java automatisch generieren lassen. Allgemeine Java-Themen 4
L Per IText erstelltes PDF automatisch drucken Allgemeine Java-Themen 13
S Array "automatisch" füllen Allgemeine Java-Themen 5
G JTextArea im JScrollpane automatisch mitscrollen Allgemeine Java-Themen 4
M Eingelesene Bild wird automatisch skaliert Allgemeine Java-Themen 4
M Encoding automatisch erkennen Allgemeine Java-Themen 4
G Bedeutet Java automatisch OpenSource? Allgemeine Java-Themen 18
F JTextField Eingabe automatisch bestaetigen Allgemeine Java-Themen 17

Ähnliche Java Themen

Neue Themen


Oben