有没有办法在Linux上更改运行python脚本的进程的名称?
当我执行ps
时,我得到的只是“python”进程名称。
答案 0 :(得分:18)
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
命令的系统。
答案 1 :(得分:14)
有更简单的(你不需要导入任何libs),但可能不那么优雅。你必须不要使用&#34; env&#34;在shebang线内。
换句话说,这将命名为&#34; python&#34;在进程列表中:
#!/usr/bin/env python
但是这将使用您的脚本名称命名:
#!/usr/bin/python
因此,您可以使用pidof -x scriptname
或ps -C scriptname
答案 2 :(得分:8)
可以选择执行以下操作,但它仅适用于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)
答案 3 :(得分:5)
procname库在ubuntu上对我不起作用。我改为使用setproctitle(pip install setproctitle
)。这就是gunicorn使用的,它对我有用。