检查Python脚本是否正在运行

时间:2018-10-04 23:28:17

标签: python bash raspberry-pi3

我有一个名为update.py的python脚本,并且我想使用另一个python脚本来检查该脚本是否正在运行。如果update.py没有运行或出错,则脚本将运行update.py。

我可以这样做吗?如果有一个例子,将非常感激。

2 个答案:

答案 0 :(得分:0)

脚本通常用于此类任务。您有一个监视脚本,该脚本跟踪在后台运行的update.py。如果监视脚本在开始时启动python脚本,将变得更加容易。

#!/bin/bash
# Monitor script. 

EXEC=<path>/update.py

while true; do
    "$EXEC" &
    wait # Here the assumption is that you want to run this forever. 
done

答案 1 :(得分:0)

不确定您要问的是什么,但是鉴于此可能有所帮助,因此,如果您只想从另一个调用一个python脚本,则可以使用脚本1

IntPtr token = IntPtr.Zero;
bool success = LogonUser("username", "domainname", "password",
    2, 0, ref token);
if (success)
{
    using (WindowsImpersonationContext person = new WindowsIdentity(token).Impersonate())
    {
        File.Copy(sourceFileName,destFileName);

        person.Undo();
        CloseHandle(token);
    }
}

将此文件保存在名为script1的脚本中并运行它,它将编译update.py。 如果要检查update.py中是否存在语法错误,则可以使用脚本2

 #!/usr/bin/python 
 from subprocess import call
 call(["python", "update.py"])

如果script2编译时没有任何错误,则表明程序中没有语法错误。

再次,如果要检查update.py是否正在运行,可以使用脚本3

#!/usr/bin/python
from subprocess import call
call(["python","-m","py_compile", "update.py"])

最后一个脚本将告诉您脚本是否正在运行,如果未运行,则会对其进行编译。