Ich habe versucht py-setproctitle und setproctitle. Beide haben unter OpenBSD nicht funktioniert.Wie kann ich den Prozessnamen meines Python-Skripts auf OpenBSD4.8 ändern
Antwort
Das Problem ist here
In setup.py
es prüft, ob setproctitle
in unistd.h
definiert ist, obwohl es in stdlib.h
auf OpenBSD definiert ist.
Durch einchecken stdlib.h
auch (was später enthalten ist - also keine Sorgen), alles funktioniert wie erwartet.
unter Diff:
--- setup.py~ Mon Jan 3 12:05:39 2011
+++ setup.py Mon Jan 3 12:05:39 2011
@@ -39,7 +39,7 @@
# Old BSD versions don't have setproctitle
# TODO: not tested on an "old BSD"
if 0 == os.spawnlp(os.P_WAIT, 'grep',
- 'grep', '-q', 'setproctitle', '/usr/include/unistd.h'):
+ 'grep', '-q', 'setproctitle', '/usr/include/unistd.h', '/usr/include/stdlib.h'):
define_macros['HAVE_SETPROCTITLE'] = 1
else:
define_macros['HAVE_PS_STRING'] = 1
Der Mann-Seite von OpenBSD: setproctitle(3) Hinweise darauf, dass es in stdlib.h
ist.
Vielen Dank für Ihre Antwort. Es funktioniert jetzt. Ist es möglich, "Python" aus der Prozessliste zu verstecken? root 8590 0.0 0.3 1716 3716 p2 S + 4:15 PM 0: 00.05 python: OZKAN (python2.5) –
@Ozkan Nicht ohne Änderungen in libc. Die Fähigkeit, sich frei zu verändern, würde es sehr leicht machen, unerwünschte Software wie Hintertüren usw. zu verstecken [setproctitle.c] (http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/gen/setproctitle). c? rev = 1.11) – plundra
Vielen Dank für den Tipp. Der Fix wird in Setproctitle 1.1.2 veröffentlicht. – piro
Ein bisschen Beispielcode, den Sie geschrieben haben, wäre gut – ismail
'setproctitle.setproctitle (" foo ")' ist genug, um zu testen, dass es nicht funktioniert. Dies ist wahrscheinlich ein Fehler in py-setproctitle. setproctitle() funktioniert in 4.8 (getestet in C). – plundra
@plundra, deshalb habe ich nach Beispielcode gefragt, es sollte gut funktionieren. – ismail