Existe-t-il un moyen de changer le nom d'un processus exécutant un script python sous Linux?changer le nom du processus d'un script python
Lorsque je fais un ps
, tout ce que je reçois sont des noms de processus "python".
Existe-t-il un moyen de changer le nom d'un processus exécutant un script python sous Linux?changer le nom du processus d'un script python
Lorsque je fais un ps
, tout ce que je reçois sont des noms de processus "python".
http://code.google.com/p/procname/
Exemple d'utilisation:
# 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
Il ne fonctionne que sur les systèmes où l'appel système prctl
est présent et prend en charge la commande PR_SET_NAME
.
Il y a la possibilité de faire ce qui suit, mais il ne fonctionne que sur Linux (avec l'appel prctl(2))
if sys.platform == 'linux2':
import ctypes
libc = ctypes.cdll.LoadLibrary('libc.so.6')
libc.prctl(15, 'My Simple App', 0, 0, 0)
la bibliothèque procname ne fonctionne pas pour moi ubuntu. Je suis allé avec setproctitle à la place (pip install setproctitle
). C'est ce que Gunicorn utilise et ça a marché pour moi.
Il est plus simple (vous n'avez pas besoin d'importer de libs) mais peut-être pas si élégant. Vous ne devez pas utiliser "env" à l'intérieur de la ligne shebang.
En d'autres termes, il sera nommé comme « python » dans la liste des processus:
#!/usr/bin/env python
Mais ce sera nommé avec votre scriptname:
#!/usr/bin/python
Vous serez en mesure de le trouver avec quelque chose comme pidof -x scriptname
ou ps -C scriptname
est exactement ce que je cherche Merci – user1061392
Efficace lorsque nous travaillons avec des fichiers bash Merci. – dlopezgonzalez
Neat! Existe-t-il un moyen d'effectuer la même opération ** sans ** encourir la complexité supplémentaire d'une extension 'C'? – jldupont
http://bugs.python.org/issue5672 me fait penser que, non, il n'y a pas :-( – bernie
dans ce billet, ils mentionnent aussi un autre outil de changement de nom de processus (également en C): http: // code.google.com/p/py-setproctitle/source/browse/tools/ – bernie