0

我想将我的 python 脚本设置为始终使用固定的进程 ID。这样每次我想杀死它时,我都不必为它做一个 ps aux 。请帮忙。

我正在使用 Ubuntu 和 CentOS。

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

4

3 回答 3

2

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

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

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

我相信你可以设计一个创造性的 kill 命令,每次都能捕捉到你的进程:

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

或类似的。

于 2012-09-04T09:26:19.100 回答
2

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

kill `cat x.pid`
于 2012-09-04T09:26:09.513 回答
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}'`

然后你可以运行脚本来终止进程......

于 2012-09-04T09:26:24.270 回答