如何防止脚本同时运行?

Oli*_*Oli 71 bash semaphore

我想阻止我的脚本一次运行多次.

我目前的做法是

  • 创建一个包含正在运行的进程的pid的信号量文件
  • 读取文件,如果我的进程ID不在它退出(你永远不知道......)
  • 在处理结束时,删除该文件

为了防止进程挂起,我设置了一个cron作业,定期检查文件是否超过了最大允许的运行时间,如果文件仍然在运行,则会终止该进程.

是否存在我正在杀死错误进程的风险?

有没有更好的方法来执行这个整体?