Linux ps

Ghorki

Aktives Mitglied
Hallo Leute,

ich bin völliger Anfänger in Linux und bräuchte unbedingt eure Hilfe.

Mit
Code:
ps -eaf | grep XMLIMPORT
bekomm ich folgende Ausgabe:

Code:
plmrt 18184 9606 0 Jun 28 ? 0:17 axalant X:/home/plmrt/plm/ini /plmtest.xml XMLIMPORT -t 1 -k BSLW0113 -c 3263:1 

plmrt 21459 9606 0 Jun 26 ? 0:23 axalant X:/home/plmrt/plm/init/plmtest.xml XMLIMPORT -t 1 -k BSLW0113 -c 3255:1 

nobody 28301 2064 0 12:48:52 ? 0:00 sh -c ps -eaf | grep XMLIMPORT 

nobody 28302 28301 0 12:48:52 ? 0:00 grep XMLIMPORT
Ich möchte die Ausgabe nun Filtern und zwar soll er jede Zeile durchsuchen, wenn das Wort XMLIMPORT nach einem .xml folgt, soll in der Ausgabe zusätzlich "läuft" stehen, wenn das nicht der Fall ist "läuft nicht".

Danke schonmal für eure Hilfe..

MfG
Ghorki
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
Soll die Ausgabe über Shell-Befehle geschehen? Oder willst Du das in einem Java-Programm machen? Falls Java, dann:
Java:
  final String[] psCommand = { "ps", "-eaf", "|", "grep",
			"XMLIMPORT" };

  final Runtime runtime = Runtime.getRuntime();

  final Process psProc = runtime.exec(psCommand);

  final InputStream psInput = psProc.getInputStream();

  final BufferedReader psReader = new BufferedReader(
    new InputStreamReader(psInput));

  String line = null;
		
  while ((line = psReader.readLine()) != null) {

    if (line.contains("xml XMLIMPORT")) {
		
      System.out.println(line + " läuft");
    } else {
			
      System.out.println(line + " läuft nicht");
    }
Bin mir nicht ganz sicher, ob das Pipen und greppen über das exec funktioniert. Notfalls halt das greppen auch im Java-Programm machen.
 

Ähnliche Java Themen


Oben