Prozess beenden auf Unix

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hi

hab ne frage!
Ich führe auf Unix ein Java-Programm aus!
ich starte es über telnet:

Code:
java programm

zurzeit beende ich es ganz einfach mit Ctrl + C!
problem dabei ist, dass im hintergrund der process immer noch läuft!
ich will ihn nicht jedes mal von hand beenden (mit kill -9 prozessid)!! wie kann ich das ändern?

Gruss Flyer2004
 

Pennywise

Aktives Mitglied
Sezt in deinen Programmcode an der Stelle, wo das Programm aufhören soll ein:
System.exit(0);

Sollte hoffentlich helfen.

Oder hast du das Programm nicht selber geschrieben.
 
F

Flyer

Gast
doch hab ich...nur das problem ist, das ich das programm über telnet beende...mit Ctrl+C!
und dann müsste ich im Programm irgendwie wissen das ich es beendet habe!
 

Pennywise

Aktives Mitglied
Code:
public class ??? imlements KyListener {

.....
.....

   //Konstruktor
    public ???() {
    
        addKeyListener(this);
    
    }

    public void keyPressed(KeyEvent event) {

        if(event.getKeyCode() == KeyEvent.VK_CONTROL + KeyEvent.VK_C) {
        
            System.exit(0);
        
        }        

    }

    public void keyReleased(KeyEvent event) {}

    public void keyTyped(KeyEvent event) {}

}

Weiß aber leider net wie du auf telnet zugreifen kannst.
So kannst du jedenfalls in deiner Programmkonsole direkt schließen.[/code]
 
F

Flyer

Gast
hmm...du hast mich glaub falsch verstanden!

ich will gar keine konsole schliessen...damit hätte ich kein programm! ich drücke im "TELNET" CTRL+C und dann soll es auch die Prozesse im Hintergrund meines Javaprogramms schliessen!
 
G

Guest

Gast
Versuch's damit
Code:
...
Runtime.getRuntime().addShutdownHook(
  new Thread() {
    public void run() {
      System.out.println("...und Tschüß.");
    }
  }
);
...
 

Bleiglanz

Gesperrter Benutzer
na jetzt kommst du daher und erzählst, dass dein Programm zusätzliche Threads aufmacht

Ein Thread terminiert genau dann, wenn seine run() Methode endet ("returniert") - wenn du das nicht willst, musst du eben von aussen eingreifen

Was macht das Hauptprogramm (main), das du von der Konsole aufrufst?

RTFM wie man Threads "von aussen" beendet (interrupt usw)!
 

Bleiglanz

Gesperrter Benutzer
ich schreibe davon, dass du in
ich drücke im "TELNET" CTRL+C und dann soll es auch die Prozesse im Hintergrund meines Javaprogramms schliessen!
scheinbar sagen willst, dass deine Anwendung mehrere Threads startet? richtig?
 

thE_29

Top Contributor
@bleiglanz: hast du schon mal mit linux gearbeitet?
wenn du da ein java prog ausführst, sind das ca. 5 - 10 prozesse die da gestartet werden, das meint er ;)


beende es halt nicht mit ctrl +c sondern ctrl + a oder so, weil ich weiß nicht ob du ctrl + c abfangen kannst!

aber bei den restlichen einfach auf den tastendruck warten und dann beenden!
 

Bleiglanz

Gesperrter Benutzer
@thE_29

ich arbeite auch unter linux, wenn ich allerdings ein Konsolenprogramm mit Strg-C beende, dann werden alle zugehörigen Java-Prozesse gekillt

darum kommt mir das Verhalten von Flyer komisch vor
 

thE_29

Top Contributor
aso!

naja, eigentlich beenden sich ja alle prozesse (auch bei strg c, habs grad probiert)

ich "würg" halt nie wirklich ein programm so damit ab, aber ob unter telnet das gleiche passiert ist ne frage!

aaabbbbbeeer, wennst nen timer oder thread hast und dann mit strg c abwürgst, glaube ich bleiben die am leben (ist mir schon 1mal passiert) und dann hattest du vorher recht... ;)

außerdem baut man eine gewisse tastenkombi ein, damit ein programm sich beendet und net den standard kill key!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L ssh connection; Zugriff auf 'screen' Prozess Netzwerkprogrammierung 5
C Prozess-ID (PID) bestimmen Netzwerkprogrammierung 12
F Thread "extern" beenden Netzwerkprogrammierung 3
J ServerSocket sauber beenden Netzwerkprogrammierung 3
J Website-Zugriff beenden Netzwerkprogrammierung 11
T Server mit ThreadPool beenden Netzwerkprogrammierung 5
B Socket BufferedReader.readLine() beenden ohne den Stream zu closen Netzwerkprogrammierung 7
F Netzwerkprogramm sauber beenden Netzwerkprogrammierung 3
T RMI Registry nicht mit beenden. Netzwerkprogrammierung 6
V Multithreaded Server ueber Konsole beenden Netzwerkprogrammierung 6
G Server Thread beenden Netzwerkprogrammierung 16
musiKk Server sauber beenden Netzwerkprogrammierung 6
T select() ohne NIO - oder wie Worker-Thread sauber beenden? Netzwerkprogrammierung 9
TRunKX Threads beenden sich selber? Netzwerkprogrammierung 6
B Mit RMI Server beenden Netzwerkprogrammierung 4
Y server mit endlosse schleife beenden Netzwerkprogrammierung 6
N Sock will nicht richtig beenden Netzwerkprogrammierung 7
Dit_ FTP chmod | LIST unter Win und Unix Netzwerkprogrammierung 2
J Windows Unix remote Netzwerkprogrammierung 2
K Verbindung mit Unix Server aufnehmen Netzwerkprogrammierung 2
A jCIFS und Unix Netzwerkprogrammierung 3
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
F Vi-Editor von UNIX mit Java (RMI) Netzwerkprogrammierung 2
F RMI auf UNIX SERVER Netzwerkprogrammierung 42
F Verbindung auf Unix-Server Netzwerkprogrammierung 16

Ähnliche Java Themen

Neue Themen


Oben