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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
linuxinho2
User
Beiträge: 8
Registriert: Samstag 23. Februar 2008, 12:49

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!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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!
linuxinho2
User
Beiträge: 8
Registriert: Samstag 23. Februar 2008, 12:49

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?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich habe Dir doch grad DBUS / DCOP empfohlen!
linuxinho2
User
Beiträge: 8
Registriert: Samstag 23. Februar 2008, 12:49

Danke für deine Antwort!


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

Nochmals, Sorry!
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

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
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
linuxinho2
User
Beiträge: 8
Registriert: Samstag 23. Februar 2008, 12:49

Danke!

das funzt,

Cool!

HERZLICHEN DANK!

Muss noch viel lernen! :D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten