相关疑难解决方法(0)

如何防止脚本同时运行?

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

我目前的做法是

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

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

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

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

bash semaphore

71
推荐指数
0
解决办法
5万
查看次数

普通锁定文件中的竞争条件?

这是使用文件系统创建锁的标准方法.例如,visudo使用它:

[ -f ".lock" ] && exit 1
touch .lock
# do something
rm .lock
Run Code Online (Sandbox Code Playgroud)

1)我很困惑,因为有竞争条件,但Linux使用它

2)有没有更好的方法来锁定shell中的文件?

3)或者我必须使用目录吗?

找到解决方案:man lockfile.

linux bash shell mutex locking

15
推荐指数
2
解决办法
7562
查看次数

标签 统计

bash ×2

linux ×1

locking ×1

mutex ×1

semaphore ×1

shell ×1