2011-01-03 15 views
2

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

+1

Ein bisschen Beispielcode, den Sie geschrieben haben, wäre gut – ismail

+0

'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

+0

@plundra, deshalb habe ich nach Beispielcode gefragt, es sollte gut funktionieren. – ismail

Antwort

3

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.

+0

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) –

+0

@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

+0

Vielen Dank für den Tipp. Der Fix wird in Setproctitle 1.1.2 veröffentlicht. – piro