我有一个 bash 脚本,一旦进程完成,该脚本就会被程序调用。我需要一种方法让该 bash 脚本等待其自身的另一个实例是否正在运行以退出,然后再继续。我不能只使用锁定文件并退出,因为不会在任何类型的常规计划中再次调用该脚本。
问问题
1989 次
2 回答
2
我不能只使用锁定文件并退出,因为不会在任何类型的常规计划中再次调用该脚本。
在脚本中,在创建锁定文件之前,您可以循环检查锁定文件是否存在,如果存在,则继续循环(通过sleep
命令或其他方式),当它消失时,创建它。
就像是:
#!/bin/bash
while [ -e /var/tmp/bash_script.lock ];
do
sleep 5
done
touch /var/tmp/bash_script.lock
echo "do something"
rm /var/tmp/bash_script.lock
于 2012-10-12T07:48:23.110 回答
1
使用ps -df
列出系统上运行的所有 PID 和 PPID 的命令。现在您可以包含一个代码,该代码将解析ps -df
输出并检查bash script
iy 的运行实例 答案是 yesexit 1
当前脚本
于 2012-10-12T07:41:45.080 回答