Prozessname eines Python-Skripts

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
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Da Python-Programme ja immer mit dem Python-Interpreter aufgerufen werden müssen, sieht man sie folglich "von außen" (also in der Prozessliste) nur als `python`. Gibt es eigentlich irgendeine Möglichkeit, bei Python-Skripten, die als ausführbare Datei von der Kommandozeile gestartet werden, den Namen dieser ausführbaren Datei als Prozessnamen sichtbar zu machen? Ich habe darüber ein bißchen nachgedacht, aber mir würde nichts einfallen. Geht halt nicht, weil Python-Programme nunmal nicht zu einer Binärdatei kompiliert werden, richtig?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Welches Problem hast du damit bzw. willst du lösen? Oder einfach nur einen Überblick bekommen, welches Skript das nun ist?

Könnte man evtl. anhand der offenen Dateien feststellen?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

Unter Unix reicht es, das Skript ausführbar zu machen und direkt zu starten. Dann erscheint der Name des Skripts als Prozessname.
0x1cedd1ce
User
Beiträge: 31
Registriert: Sonntag 3. Oktober 2010, 12:21

In der Prozessliste kannst du auch die Argumente sehen mit denen ein Programm aufgerufen wurde. Daraus kannst du dann auslesen welches Skript ausgeführt wird.
Unter Unix kannst du dir mit "ps -F" oder "ps -f" oder "ps aux" oder "ps ax" Prozesse zusammen mit Parametern anzeigen lassen.
Oder du siehst dir alle Verzeichnisse in /proc/ an, die nur aus einer Zahl bestehen, und aus jedem Verzeichniss liest du die Datei "cmdline" aus. Da steht der Kommandozeilenaufruf drinn, mit dem das Programm aufgerufen wurde.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

lunar hat geschrieben:Unter Unix reicht es, das Skript ausführbar zu machen und direkt zu starten. Dann erscheint der Name des Skripts als Prozessname.
Kann ich für Lubuntu nicht bestätigen. X-Flag ist gesetzt, Programm wird direkt gestartet, aber es bleibt bei `python` als Prozessname.
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Bei mir (Ubuntu-Server 8.04, Debian Squeeze) sehe ich den Skriptnamen in top ...
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ok, hatte es zunächst mit `ps -A` geprüft. `ps aux` klappt. Halt `python` mit dem Skriptnamen als Argument. Anders gehts dann wohl nicht.
kkris
User
Beiträge: 1
Registriert: Mittwoch 4. August 2010, 18:41

Mit etwas ctypes lässt sich das problem lösen:

https://github.com/cream/python-cream/b ... ame.py#L46
Antworten