Seite 1 von 1

Wie finde ich heraus ob eine bestimme Anwendung gerade läuft

Verfasst: Montag 28. April 2008, 11:59
von linuxinho2
Hallo, an das Forum!

Kämpfe mich tapfer in den Python Dschungel vor.

Leider stehe ich zur Zeit vor einer Schlucht und finde keinen Weg über diese. :?: :D

Wie kann ich festestellen ob eine bestimmte Anwendung (z.B. Kwrite, Vlc, etc) gerade aktiv ist.

DANKE!

Verfasst: Montag 28. April 2008, 12:32
von Hyperion
Hallo,

bei KDE-Programmen geht das am einfachsten über DCOP (KDE 3.x) oder DBUS (KDE 4.x). Ansonsten müßtest Du mal gucken, ob ps etwas brauchbares liefert. Ob man direkt auf eine Prozessliste mit Python zugreifen kann, wüßte ich nicht, wage ich aber zu bezweifeln!

Was sagen die die Profis zu meiner Lösung?

Verfasst: Montag 28. April 2008, 12:37
von linuxinho2

Code: Alles auswählen

os.system('ps x > pid.txt')

pidtxt = open('pid.txt','r').readlines()

for x in pidtxt:
	if 'kaffeine' in x:
		print x

>>>>>> 8271 ?        Sl     5:14 kaffeine mms://vBD8620D4B72011gcsj2w07739FA61.proxitv.speednet.at/WSX/oe3_live
Irgendwie umständlich :?: , kennt jemand eine andere Lösung?

Verfasst: Montag 28. April 2008, 12:40
von Hyperion
Ich habe Dir doch grad DBUS / DCOP empfohlen!

Sorry, das hat sich jetzt irgendwie überschnitten ...

Verfasst: Montag 28. April 2008, 12:44
von linuxinho2
Danke für deine Antwort!


Sorry, deine Antwort war noch nicht das, als ich neu gepostet habe.

Nochmals, Sorry!

Verfasst: Montag 28. April 2008, 12:53
von Rebecca
Ich mach das in der Konsole immer so:

Code: Alles auswählen

> ps -e | grep emacs
 4579 ?        00:00:41 emacs
Kannste an subprocess verfuettern... :)

Edit:

Code: Alles auswählen

>>> from subprocess import Popen, PIPE
>>> output = Popen(["ps", "-e", "-o", "cmd"], stdout=PIPE).communicate()[0]
>>> "emacs" in output
True

Ja, das ist es ...

Verfasst: Montag 28. April 2008, 13:22
von linuxinho2
Danke!

das funzt,

Cool!

HERZLICHEN DANK!

Muss noch viel lernen! :D

Verfasst: Montag 28. April 2008, 20:40
von Leonidas
Ja, aber das ist auch nicht multiuser-safe. An einigen Rechnern sind bei mir mehrere Leute gleichzeitig angemeldet, mit eigenen Firefox instanzen. Firefox prüft aber vorher ob es bereits geladen ist. Also sollte man das etwas schlauer implementieren und die Prozesse die von anderen Usern gestartet sind vorher ausfiltern.