Seite 1 von 1

wie bekomme erkenne ich "meinen" Prozess?

Verfasst: Sonntag 13. Oktober 2002, 17:25
von hans
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

Verfasst: Sonntag 13. Oktober 2002, 18:44
von Dookie
Hi Hans,

os.getpid()

ist was Du suchst.


Gruß

Dookie

Verfasst: Sonntag 13. Oktober 2002, 19:38
von hans
ä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

Verfasst: Sonntag 13. Oktober 2002, 21:50
von Dookie
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

Verfasst: Montag 14. Oktober 2002, 21:46
von hans
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

Verfasst: Montag 14. Oktober 2002, 21:58
von Dookie
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

Verfasst: Montag 14. Oktober 2002, 23:34
von hans
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]

Verfasst: Dienstag 15. Oktober 2002, 13:38
von ASCII158
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?

Verfasst: Dienstag 15. Oktober 2002, 14:13
von Dookie
Ich denke hans meinte 1 GHz. Geos, grafische Oberfläche, lief auch auf einem C64 mit 1 MHz *ggg*


Gruß

Dookie

Verfasst: Dienstag 15. Oktober 2002, 17:28
von hans
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