programa - ejecutar python en linux
cambiando el nombre del proceso de un script de python (4)
Existe la opción de hacer lo siguiente, aunque solo 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)
Esta pregunta ya tiene una respuesta aquí:
¿Hay alguna manera de cambiar el nombre de un proceso que ejecuta un script de python en Linux?
Cuando hago un ps
, todo lo que obtengo son nombres de proceso "python".
Hay una forma más simple (no es necesario importar libs), pero tal vez no sea tan elegante. Tienes que no utilizar "env" dentro de la línea shebang.
En otras palabras, esto se nombrará como "python" en la lista de procesos:
#!/usr/bin/env python
Pero esto se nombrará con su nombre de script:
#!/usr/bin/python
Así que podrás encontrarlo con algo como pidof -x scriptname
o ps -C scriptname
la biblioteca procname no funcionó para mí en ubuntu. Fui con setproctitle en su lugar ( pip install setproctitle
). Esto es lo que Gunicorn usa y funcionó para mí.
http://code.google.com/p/procname/
Uso de la muestra:
# Lets rename:
>>> procname.setprocname(''My super name'')
# Lets check. Press Ctrl+Z
user@comp:~/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
Solo funcionará en sistemas en los que prctl
system call esté presente y admita el comando PR_SET_NAME
.