在mod_wsgi中设置进程名称

0 投票
1 回答
1068 浏览
提问于 2025-04-16 01:13

我在用apache2.x搭建一个网站,使用的是mod_wsgi 2.5和python2.5。这个网站配置成了多进程,每个进程只包含一个线程。

当我看到这篇文章时,我尝试把进程的名字设置为PATH_INFO,但没有成功。我的代码是这样的:

import ctypes
libc = ctypes.CDLL('/lib/libc.so.6')
def application (environ, start_response):
   libc.prctl(15, environ.get('PATH_INFO', 'WSGI'), 0, 0, 0);
   # other codes

1 个回答

3

如果你在使用 mod_wsgi 的守护进程模式,那么 WSGIDaemonProcess 里的 display-name 选项有什么问题吗?这个选项的作用就是通过 setproctitle() 或者给 argv[0] 赋值来把进程的名字改成一个固定的值,这在某些特定的平台上是有效的。你可以查看这里:

http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

需要注意的是,这个做法只适用于守护进程模式的进程,而不适用于 Apache 服务器本身的进程。因此,这个选项只在 WSGIDaemonProcess 指令中可用。并且,这个名字只需要在进程启动时设置一次,而不是根据请求动态改变。

撰写回答