当另一个python脚本运行时,如何停止我的python脚本?

Tim*_*Tim 2 python unix linux

我想知道如何在已经运行的时候停止当前的python脚本.

要清楚,我想用我自己的python脚本编写它.所以首先,在main方法中,它将检查我的python脚本是否已经运行.如果它正在运行,我想退出并显示错误消息.

目前我正在尝试此代码:

if os.system("ps ax | grep sample_python.py") == True:
     print "fail"
     exit(0)
else:
     print "pass"
Run Code Online (Sandbox Code Playgroud)

上面的代码看起来像是grepping python名称..但它总是转到else循环而不是进入if循环并退出..

因此,出于测试目的,我运行我的脚本,并在另一个终端上再次运行我的脚本.第一个脚本不会停止,但第二个python不会进入if循环打印出错误消息.

我怎样才能解决这个问题?


好吧,我发现了一个愚蠢的事情,我想看看是否有人可以帮助我绕过它..所以我的观点是杀死刚开始的python,如果另一个python正在运行..但是愚蠢的事情是..因为我我正在运行我的python并在这个python中运行一个检查编码..它将一直退出..因为我一启动python PID将被创建并将运行...

所以.. python启动 - > pid创建并运行 - >检查python是否正在运行 - >是的python正在运行 - >退出.

我想看看是否有办法进行python启动 - >检查python是否已经运行 - >如果正在运行则杀死当前的python而不是正在运行的python.

Mes*_*ssa 7

具有正在运行的进程的PID的锁文件是一种更系统的方法.程序只是在开始时检查PID文件是否存在并被锁定(flocklockf); 如果是这样,这意味着该程序的另一个实例仍在运行.如果没有,它会创建(或重写)PID文件并将其锁定.

flock/lockf锁具有以下优点:操作系统在程序终止时自动移除锁定.

在这里看到如何在Python中执行此操作:

Python:用于创建基于PID的锁文件的模块?