# Linux ps



## Ghorki (6. Jul 2012)

Hallo Leute,

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

Mit 
	
	
	
	





```
ps -eaf | grep XMLIMPORT
```
 bekomm ich folgende Ausgabe:


```
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


----------



## nillehammer (6. Jul 2012)

Soll die Ausgabe über Shell-Befehle geschehen? Oder willst Du das in einem Java-Programm machen? Falls Java, dann:

```
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.


----------



## HoaX (7. Jul 2012)

nillehammer hat gesagt.:


> Bin mir nicht ganz sicher, ob das Pipen und greppen über das exec funktioniert. Notfalls halt das greppen auch im Java-Programm machen.



Nö tuts nicht, das sind Features der Shell, welche man aber auch ohne Probleme aufrufen und Befehle übergeben kann, idR mittels -c "befehle ..." (2 Parameter).


----------

