检查进程是否运行linux并以某些描述开始

时间:2014-01-07 19:45:00

标签: ps grep

我有多个脚本正在运行。所有脚本都具有相同的名称,但它们执行的命令正在执行不同的操作。

我试图弄清楚脚本的某个实例是否正在运行,如果是,我不希望它再次运行。这很困难,因为所有脚本都具有相同的名称,因此使用pgrep可能是误报。

我的想法是,如果首次运行时我可以附加任何属性或描述,那么我可以grep查找该唯一描述并告诉哪个实例正在运行,有没有办法做到这一点? 有没有人有其他想法?

由于

1 个答案:

答案 0 :(得分:0)

您可以实现以下逻辑来检查天气脚本是否已经运行。

if [ -f Script1.lck ];then

        echo "ALREADY INSTANCE RUNNING `date`" 
        echo "EXITING" 
else
         echo "NO INSTANCE RUNNING "
         touch  Script1.lck
         #Your Script code here.............
         rm -f Script1.lck
fi

*我使用的概念是每次运行时检查Script1.lck文件,如果文件不存在,则表示没有实例正在运行。所以它创建文件并开始执行代码。 假设在执行脚本之间,它会检查.lck文件,而.lck由于之前的实例而已经存在。

*最后我删除了.lck文件。

*通过为不同的脚本使用不同的lck文件名,您可以检查正在运行的脚本。