近来一直在努力解决python进程占用CPU 100% 的问题, 今天看到了这篇帖子“在top监视窗口显示Django当前正在执行的请求URL ”,我使用的是Lighttpd/fastcgi,直接用帖子中的代码没有走通,最后使用了下面的代码实现了这个功能:
def show_process_detail(self, request):
"""在ubuntu的top命令中看到进程对应的URL"""
if settings.DEBUG: return
from ctypes import cdll, byref, create_string_buffer
proc_name = request.get_full_path().replace('/django.fcgi/','')
libc = cdll.LoadLibrary('libc.so.6')
buff = create_string_buffer(len(proc_name)+1)
buff.value = proc_name
libc.prctl(15, byref(buff), 0, 0, 0)
在TOP界面中的COMMAND列能看到了URL, 但只能显示15个字符,按热键c也无法做到显示全部的URL值,这是留下的一点遗憾。