wie bekomme erkenne ich "meinen" Prozess?

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
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 13. Oktober 2002, 17:25

Ein user hat sich mehrfach am Server eingeloggt und in jeder Session das gleiche Programm gestartet, sagen wir mal mozilla. Wie kann ich jetzt in Python herausbekommen, welcher Prozess am aktuellen Terminal aktiv ist?

Hab schon mal in ps nachgesehen, bin aber nicht so richtig fündig geworden.

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 13. Oktober 2002, 18:44

Hi Hans,

os.getpid()

ist was Du suchst.


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 13. Oktober 2002, 19:38

ähhhh, ich glaube nicht. Das ist doch das $$ unter den UNIXEN?

Vielleicht habe ich mit etwas umständlich ausgedrückt. Mir geht es darum, dass mein Pythonprogramm dem Mozilla einige Seiten "unterschieben" soll. Dafür muß ich aber erkennen, ob ein Mozilla in meiner "unmittelbaren Umgebung" bereits aktiv ist, könnte sein gleicher XServer, gleiches Terminal, ....? Es macht ja keinen Sinn,
einem Mozilla auf einer entfernten Station die Hilfedatei unterzuschieben.

Das was ich vor habe, klappt wunderbar. Nur dieses kleine Prob bleibt. :wink:

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 13. Oktober 2002, 21:50

aha!
Unter /proc/0815/environ steht für den Prozess die "Umgebung", und auch das Display. Statt 0815 natürlich die ProzessID vom Mozilla. Vielleicht kannste damit was zaubern?


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Montag 14. Oktober 2002, 21:46

Das geht ja ganz schön tief ins System. Dürfte extrem aufwändig werden weil jedesmal Leserechte geprüft werden müssen. Ich finde, das muß auch einfacher gehen. Das ps Kommando liefert ja fast alles.

Gibt's da nicht ein paar Systembefehle im XServer. Ein XServer ist doch an einen Arbeitsplatz gebunden, also müssten doch alle Prozesse, welche vom XServer aus gestartet werden, als Kindprozess vom XServer erkennbar sein, oder ist diese Annahme falsch?

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Montag 14. Oktober 2002, 21:58

Hi hans,

wieso extrem aufwändig?
Zuerst mit ps alle Mozilla-Prozesse die gerade laufen holen, die ProzessIDs extrahieren und der reihe nach
/proc/ProzessID[x]/environ auslesen und Display=x suchen und prüfen.
Wenn passender Mozilla gefunden, diesen die Seite anzeigen lassen, sonst neuen Mozilla starten.


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Montag 14. Oktober 2002, 23:34

Uff, das hätte ich mir mal besser vorher mit gvim angesehen. Geht doch. Etwas komischet Trennzeichen zwischen den Feldern. Wird in gvim als ^@ (ein Zeichen!) dargestellt.

Dann sähe das so aus:

Code: Alles auswählen

aktuelles DISPLAY ermitteln (von $$)
alle Instanzen des gewünschten Programmes suchen
wenn DISPLAY dem aktuellem Display enspricht,  Programm an diesem Bildschirm aktiv!
Wenn ein User den Browser mehrfach an dem einen Arbeitsplatz gestartet hat, dann ist das nicht mein Problem. Das geht dann wirklich zu weit.

Ich verstehe das so wie so nicht: Früher benötigte man die Power von zwei C64 mit je 64 KB RAM, Floppydisk und Datasette um zum Mond und wieder zurück zu fliegen.

Heute benötigt man Minimum eine 1 Mhz CPU, 256 MB RAM, 2 GB Harddisk um Windows halbwegs vernünftig zum laufen zu bringen. Bei 2GB HD ist dann natürlich kein Platz mehr für sinnvolle Programme.

Irgendetwas stimmt da nicht! :D:D

Hnas
[/code]
ASCII158
User
Beiträge: 80
Registriert: Samstag 28. September 2002, 15:40
Wohnort: München
Kontaktdaten:

Dienstag 15. Oktober 2002, 13:38

hans hat geschrieben: Heute benötigt man Minimum eine 1 Mhz CPU, 256 MB RAM, 2 GB Harddisk um Windows halbwegs vernünftig zum laufen zu bringen. Bei 2GB HD ist dann natürlich kein Platz mehr für sinnvolle Programme.

Irgendetwas stimmt da nicht! :D:D
[/code]
Ja: Windoof läut nicht mit 1MHz!! Oder bin ich da falsch informiert?
mfg,

10011110
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Dienstag 15. Oktober 2002, 14:13

Ich denke hans meinte 1 GHz. Geos, grafische Oberfläche, lief auch auf einem C64 mit 1 MHz *ggg*


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Dienstag 15. Oktober 2002, 17:28

Au Sch.........

1 Mhz reicht ja nicht mal mehr um die Mausevents zu verarbeiten :?

Sorry, ich meinte natürlich GHz. WievieGHz hatte eigentlich der C64?

Hans
Antworten