我想设置我的python脚本来始终使用固定的进程ID。所以每次我想杀死它时,我都不必为它做一个ps aux。请帮忙。修复Python脚本的进程ID
我正在使用Ubuntu & CentOS。
Ubuntu是我的测试系统 CentOS是我的服务器
我想设置我的python脚本来始终使用固定的进程ID。所以每次我想杀死它时,我都不必为它做一个ps aux。请帮忙。修复Python脚本的进程ID
我正在使用Ubuntu & CentOS。
Ubuntu是我的测试系统 CentOS是我的服务器
为什么不写删除你的过程一个小脚本:
#!/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}'`
然后你可以运行脚本杀掉进程...
这是不可能的,Posix的进程ID被保证是随机(例如OpenSSL
使用进程id种子它的随机数发生器)。只有你可以做的事情是将进程ID写入文件并根据写入的进程ID来终止进程。
kill `cat x.pid`
你是什么意思,保证是随机的?我用过的所有Linux版本都只有一个跟踪它的计数器,并且只使用下一个可用的pid作为新的pid。运行ps | grep ps几次,你会看到。 –
这是真的,但你不知道你的过程将得到哪个ID。 – dav1d
这不是你可以用python或任何其他进程来做的事情。
进程标识由Linux内核分配,并且可以保证标识的唯一性。此外,如果你的进程使用另一个进程的子进程,它的进程ID将驻留在内核进程表中,直到父进程已经确认它已经读取了退出状态为止。这意味着你不能简单地在稍后重新使用进程ID,它仍然可以在进程表中保留。
我敢肯定,你可以设计一个创意kill命令那会,每次赶上你的过程:
kill `ps -fC python2.7 | grep yourscriptname.py`
或相似。
究竟为什么做你想做的事是什么? – 2012-09-04 09:19:26
我同意@Tichodroma--我也怀疑这是可能的。将PID写入 .pid文件并使用它的过程的正常用法有什么不对吗? –