2010-02-12 18 views

Respuesta

15

http://code.google.com/p/procname/

Ejemplo de uso:

# Lets rename:  
>>> procname.setprocname('My super name')  

# Lets check. Press Ctrl+Z  
[email protected]:~/procname$ ps 

    PID TTY TIME CMD 

13016 pts/2 00:00:00 bash 

13128 pts/2 00:00:00 My super name <-- it's here 

sólo funcionará en sistemas en los que está presente prctl llamada al sistema y apoya PR_SET_NAME comando.

+1

¡Neat! ¿Hay alguna manera de realizar la misma operación ** sin ** incurrir en la complejidad adicional de una extensión 'C'? – jldupont

+0

http://bugs.python.org/issue5672 me hace pensar que, no, no hay :-( – bernie

+2

en ese ticket, también mencionan otra herramienta de cambio de nombre de proceso (también en C): http: // code.google.com/p/py-setproctitle/source/browse/tools/ – bernie

8

existe la opción de realizar el siguiente, a pesar de que sólo funciona en Linux (con la llamada prctl(2))

if sys.platform == 'linux2': 
    import ctypes 
    libc = ctypes.cdll.LoadLibrary('libc.so.6') 
    libc.prctl(15, 'My Simple App', 0, 0, 0) 
+0

No funciona Debian 6, x86_64. – Hongli

+0

ni funciona en ubuntu :( –

+0

Intenta reemplazar 16 con PR_SET_NAME – Dan

4

la biblioteca nombreproc no funcionó para mí en ubuntu. Fui con setproctitle en su lugar (pip install setproctitle). Esto es lo que usa el gunicorn y funcionó para mí.

11

Hay simplier (no es necesario importar ninguna libs) pero tal vez no sea tan elegante. No debe usar "env" dentro de la línea shebang.

En otras palabras, este será nombrado como "pitón" en la lista de procesos:

#!/usr/bin/env python 

Pero esto será nombrado con su scriptname:

#!/usr/bin/python 

por lo que será capaz de encuéntrelo con algo como pidof -x scriptname o ps -C scriptname

+1

This es exactamente lo que estoy buscando. Gracias – user1061392

+0

Efectivo cuando estamos trabajando con archivos bash. Gracias. – dlopezgonzalez

Cuestiones relacionadas