我有多个脚本正在运行。所有脚本都具有相同的名称,但它们执行的命令正在执行不同的操作。
我试图弄清楚脚本的某个实例是否正在运行,如果是,我不希望它再次运行。这很困难,因为所有脚本都具有相同的名称,因此使用pgrep可能是误报。
我的想法是,如果首次运行时我可以附加任何属性或描述,那么我可以grep查找该唯一描述并告诉哪个实例正在运行,有没有办法做到这一点? 有没有人有其他想法?
由于
答案 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文件名,您可以检查正在运行的脚本。