pyrasite项目总结为一条命令

今天领导推荐这个项目,中午看了一下,核心就是一个函数一条命令。最后精简为gdb -p 9252 -batch -eval-command=’call PyGILState_Ensure()’ -eval-command=’call PyRun_SimpleString(“exec(open(\&;/home/a0x55aa/code/toto/hello.py\&;).read())”)’ -eval-command=’call PyGILState_Release($1)’如果提示“ptrace: 不允许的操作.”执行命令:echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope就好了。用到gdb和python gil相关知识,不怎么懂,感觉就是与正在运行的进程争抢python虚拟机,执行完文件里的代码,over。正好在grep ps命令的时候,看到执行python manager.py runserver 的进程有两个(为啥两个读源码里读到)。然后我查了一下ps命令的stat字段都是什么意思。

D 不能中断的进程(通常为IO)R 正在运行中的进程S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说sleep 10,如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配X 已经死掉的进程(这个好像从来不会出现)Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。

下面一些是BSD风格的参数< 高优先级进程N 低优先级进程L 在内存中被锁了内存分页s 主进程l 多线程进程+ 代表在前台运行的进程

以前也没用gdb调试过python程序,要学习一下。

pyrasite项目总结为一条命令

相关文章:

你感兴趣的文章:

标签云: