修复Python脚本的进程ID

时间:2012-09-04 09:18:14

标签: python linux python-2.7

我想设置我的python脚本以始终使用固定的进程ID。因此,每次我想杀死它,我都不必为它做一个ps辅助。请帮助。

我正在使用Ubuntu& CentOS的。

Ubuntu是我的测试系统 CentOS是我的服务器

3 个答案:

答案 0 :(得分:2)

这是不可能的,Posix进程id保证是随机的(例如OpenSSL使用进程ID为它的随机数生成器播种)。您唯一能做的就是将进程ID写入文件并根据编写的进程ID终止进程。

kill `cat x.pid`

答案 1 :(得分:2)

使用python或任何其他进程,这不是你可以做的事情。

进程ID由Linux内核分配,并且可以保证id的唯一性。

此外,如果您的进程使用了​​另一个进程的子进程,则它的进程ID仍然存在于内核进程表中,直到父进程确认它已读取退出状态。这意味着您不能简单地在以后重复使用进程ID,它仍然可以在进程表中保留。

我确信你可以设计一个创造性的杀戮命令,每次都能抓住你的过程:

kill `ps -fC python2.7 | grep yourscriptname.py`

或类似。

答案 2 :(得分:0)

为什么不写一个小脚本来删除你的过程:

#!/bin/sh
#Kill my python process called myPython
kill `ps -A | grep myPython | nawk '{ print $1}'`
# Or
kill `ps -U myname | grep myPython | nawk '{ print $1}'`

然后你可以运行脚本来杀死进程...