如何制作确定程序是否已在运行的 bash 脚本

use*_*931 3 bash python

我正在制作一个 python 程序,我计划通过 bash 脚本启动它。然而,当计算机尝试启动它两次时,该程序表现不佳。由于我真的只需要启动一次这个程序,我如何判断该程序是否已经在运行。

Eri*_*ouf 11

一种方法是记录 python 进程的 PID,/var/run然后 bash 脚本可以查看具有该 PID 的文件是否存在,如果该 PID 仍在运行,则是否存在。

另一种可能性是用于pgrep查看进程是否正在运行,如果名称中有足够独特的部分(python 可能太常见而无法使用,但 py 脚本本身可能会工作)。例如:

if pgrep -f "python yourScript.py" &>/dev/null; then
    echo "it is already running"
    exit
else
    python yourScript.py
fi
Run Code Online (Sandbox Code Playgroud)

假设yourScript.py会守护自己或类似的东西