改变一个python脚本的进程名称

有没有办法改变在Linux上运行python脚本的进程的名称?

当我做一个ps ,我得到的是“python”进程名称。

Solutions Collecting From Web of "改变一个python脚本的进程名称"

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

示例用法:

 # 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 

它仅适用于存在prctl系统调用并支持PR_SET_NAME命令的系统。

有简单的(你不需要导入任何库),但也许不是那么优雅的方式。 你必须不使用shebang行内的“env”。

换句话说,这将在进程列表中被命名为“python”:

 #!/usr/bin/env python 

但是这将以你的脚本名来命名:

 #!/usr/bin/python 

所以你可以用pidof -x scriptnameps -C scriptname来找到它

有以下的选择,虽然它只能在Linux上(使用prctl(2)调用)

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

在Ubuntu的procname库没有为我工作。 我用setproctitle来代替( pip install setproctitle )。 这是gunicorn使用,它为我工作。