我想设置我的python脚本以始终使用固定的进程ID。因此,每次我想杀死它,我都不必为它做一个ps辅助。请帮助。
我正在使用Ubuntu& CentOS的。
Ubuntu是我的测试系统 CentOS是我的服务器
答案 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}'`
然后你可以运行脚本来杀死进程...