2010-05-25 33 views
3

我使用Python,因为它的价值,但会接受任何适用语言的答案。如何重命名Linux上的进程?

我试过写信给/proc/$pid/cmdline,但这是一个只读文件。

我试过给sys.argv[0]分配一个新的字符串,但是这没有可察觉的影响。

还有其他的可能吗?我的程序正在通过os.system(相当于system(3))执行进程,因此使用额外产卵过程的通用基于* NIX的解决方案将会很好。

+3

只是好奇,为什么你会*想*? :) – 2010-05-25 19:31:10

+1

可能的重复[有没有办法在Python中更改有效的进程名?](http://stackoverflow.com/questions/564695/is-there-a-way-to-change-effective-process-name -in-python) – 2010-05-25 19:39:14

+1

对Justin的回应:在unix服务器(如apache和postgres)中通常的做法是重写一个通用的进程名称,并简要说明该进程正在做什么。这有助于系统管理员(和桌面用户)在查看系统进程列表时看到发生了什么。 – 2010-05-25 22:06:55

回答

3

This似乎是你正在寻找...

+1

在相关说明中......我从来没有真正尝试过使用Python自己做这件事,但它看起来很难受:-( – ivans 2010-05-25 19:39:24

0

写入*argv将改变它,但你需要从C或类似的;我不认为Python会直接让您直接访问该内存。

我也建议只是把它放在一边。

0

如果你使用subprocess.Popen代替使用os.system可以使用executable参数指定的实际文件来执行路径,通您想要显示的名称作为参数args列表中的第一项。