- 11
- Aug
Python写的软件有一个特点,那就是进程名都是以Python命名的。
一些情况下用“系统监视器”查看进程,想结束某个Python软件的进程,一进去傻眼了,那么多Python,结束哪个呢?要不是看图标,还真找不出我要的进程。
这种情况在Linux下很常见,就我来说吧,随系统一起开启的软件当中,Gajim是Python写的,Emesene是Python写的,Gmail-Notify是Python写的,Screenlets是Python写的。对了,Ubuntu Tweak也是Python写的。
能不能把进程名改改呢?
今天看了wine-doors的源码,终于知道了如何操作当前进程了。
-----
Python中有个for Unix的dl模块,专门用于调用共享库(即.so结尾)的方法,在Windows下,应该也有调用dll文件的模块的。
比如上面提到的,要改变当前进程的进程名,就要调用到glibc中的prctl函数,用法如下:
try:
import dl
libc = dl.open('/lib/libc.so.6')
libc.call('prctl', 15, 'ubuntu-tweak', 0, 0, 0)
except:
pass
call的时候用到了很多参数,这些参数就要参考prctl这个函数了。
加了这句话后,效果就不一样了,看下面两张图:


解决了我一直以来的一大难题。。
@xiws
嗯?你也想把进程名改掉吗?
这个有用处,上次我自己写的 meizu 专用 mencoder 外壳挂了,想要结束,结果误杀了另一边正在分析 xml 的程序(python,还是自作)。
为啥贴到这里就没有缩进了呢?
@fayaa
这是WP的原因,我粘贴到Django搭的tiny_mce却没事,WP喜欢吃空格。
是啊。经常发现万多个python。。不知道如何下手。。
然后闭眼一结束。。其他程序就被kill了。。
可以看参数嘛