首页 清松游戏介绍 正文

flocked是什么?看完这篇介绍你就全明白了!

今天群里有个哥们问有没有那种,就是能让程序运行的时候,保证只有一个实例能跑起来的工具。巧么不是,我之前还真折腾过这个,给他推荐下flocked。

这玩意儿咋用?特简单。

我也是一头雾水,不知道咋下手。后来摸索一番,发现就那么几步。

flocked是什么?看完这篇介绍你就全明白了!

你得有个地儿放你的锁文件,我就直接在家目录下建个文件夹,叫".locks",专门用来放这玩意儿。

然后,就是见证奇迹的时刻。

小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

flocked是什么?看完这篇介绍你就全明白了!

我写个小脚本,就叫*,内容也很简单:

  • #!/bin/bash
  • echo "开始干活!"
  • flocked是什么?看完这篇介绍你就全明白了!

  • sleep 30
  • echo "活干完!"

看到,就中间睡30秒,模拟个干活的过程。然后用flocked给它包起来:

flocked -n ~/.locks/* *

这啥意思?

flocked是什么?看完这篇介绍你就全明白了!

  • flocked: 就是咱们今天的主角。
  • -n: 这个参数的意思是,要是发现已经有锁,就别等,直接退出,省的在那傻等着。
  • ~/.locks/*: 这就是锁文件的路径,flocked会根据这个文件来判断是不是已经有实例在跑。
  • : 这就是咱们要运行的脚本。

flocked是什么?看完这篇介绍你就全明白了!

然后,我就开两个终端,都运行这个命令。

结果?第一个终端欢快的跑起来,输出"开始干活!",然后开始睡觉。

第二个终端?直接啥也没输出,就结束。因为flocked发现已经有锁,就直接退出。

等第一个终端睡醒,输出"活干完!",结束。

我再去第二个终端运行,这回就能跑起来。

你看,是不是挺简单的?这flocked就像个看门大爷,保证同一时间只有一个脚本实例能进门干活,其他的都得在门口等着,或者直接打道回府。

flocked是什么?看完这篇介绍你就全明白了!

这玩意儿用来干啥?比如说,你有些定时任务,不希望同时跑多个,怕把服务器搞崩,或者产生什么奇怪的数据,就可以用flocked来控制一下,是不是很方便?

使用场景

我当时用这个,主要是因为服务器上跑好几个脚本,有些脚本之间有依赖关系,得按照特定顺序执行。但是,又不想把它们写到一个脚本里,感觉太臃肿,不好维护。

所以就想这么个办法,用flocked来控制一下,保证同一时间只有一个脚本在运行,这样就能保证执行顺序,还不用担心多个实例同时跑把服务器搞挂。

相关推荐