问题标签 [flock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
24894 浏览

c - 群():在没有竞争条件的情况下删除锁定的文件?

我将flock()用于名为互斥体的进程间(即某些进程可以决定对“some_name”进行锁定,这是通过在临时目录中锁定一个名为“some_name”的文件来实现的:

应该在某个时候删除锁定文件,以避免用数百个文件填充临时目录。

但是,这段代码中有一个明显的竞争条件;以进程 A、B 和 C 为例:

有没有办法在不引入这种竞争条件的情况下在某个时候删除锁定文件?

0 投票
2 回答
2616 浏览

lua - Lua Separation Steering 算法将重叠的房间分组到一个角落

我正在尝试实现一个地牢生成算法(在此处介绍并在此处演示),该算法涉及生成随机数量的相互重叠的单元格。然后将细胞推开/分离,然后连接。现在,原始发帖人/作者描述说他正在使用分离指导算法以便将细胞均匀地分布在一个区域上。我对植绒算法和/或分离转向行为没有太多经验,因此我转向谷歌寻求解释(并找到了这个)。我的实现(基于上次提到的文章)如下:

self._rooms 是一个表格,其中包含 Room 在网格中的原始 X 和 Y 位置,以及它的宽度和高度(endX,endY)。

问题是,它不是在网格上整齐地排列单元格,而是采用重叠的单元格并将它们移动到从 1,1 到距离 + 2、距离 + 2 的区域(如我的视频 [youtube] 中所见

我试图理解为什么会这样。

如果需要,我在这里解析网格表,分离并填充分离后的单元格:

0 投票
0 回答
506 浏览

linux - 在不轮询的情况下收到关于flock/lockf/fcntl 更改的通知

有没有办法(在 Linux 中)在不轮询的情况下获取文件锁定状态的更新?

我知道可以通过 lockf(fd, F_TEST) 或推测性 LOCK_NB|LOCK_SH 轮询状态,但轮询是错误的(tm)。

当然,可以通过简单的锁定尝试来确定文件何时未锁定,但我也想对另一边进行采样(用例:(大型)程序使用 lockf 在实例之间同步 - 我可能会得到它变成了flock,我想添加一个GUI,当锁可以获取时显示,当然不是占用锁)。

请注意, inotify 在这种情况下不起作用,至少在 linux 3.9.1 上是这样。

0 投票
1 回答
768 浏览

perl - 群:使用 sysopen 截断的正确方法

这三个版本是等价的吗?

0 投票
0 回答
221 浏览

php - 在php中使用flock运行shell_exec

我有一个代码尝试使用flock 函数运行Shell 脚本,但是当shell 脚本在flock 下时它似乎没有运行。代码如下:

当我移动shell_exec()..flock()

我做错了吗?我尝试使用 r+,x+,a+.. 运行 fopen,但它仍然不起作用。

非常感谢任何帮助!

0 投票
0 回答
288 浏览

perl - 使用 POSIX 或 SysV 信号量实现flock()

我想使用独占/共享的阻塞和非阻塞原子锁,就像flock().

如何使用信号量来实现此功能?

0 投票
0 回答
428 浏览

linux - rsync羊群不删除flocktmp.lock文件?

最近我更改了我的 rsync flock 命令,现在它在同步完成后停止删除flocktmp.lock 文件。任何人都可以看到我的命令中的错误吗?那真的会帮助我!

群 -xn /tmp/flocktmp.lock -c "/usr/bin/rsync -avz --perms --chmod=a+rwx --delete 'user@some.site.com:~/www/user.some. site.com/public_html/links/rtorrent_data/iRL\REMUX/'/media/HDD01/shares/SB/iRL\REMUX"

我尝试删除flock文件,然后再次运行该命令,但同步后它永远不会删除该文件。

我也尝试了几种不同的组合,但我无法做到正确。

0 投票
1 回答
1124 浏览

linux - 对flock 的阻塞调用何时会失败?

我正在阅读有关羊群的信息。该示例有这一行:
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
此调用是阻塞调用,对吗?因此,如果锁已被占用,则调用块。
我假设如果调用返回,则授予锁。那么什么时候die会发生呢?

0 投票
1 回答
297 浏览

zsh - zsh:使用flock执行if then语句而不启动新进程。

我想在 zsh 脚本中做这样的事情

不幸的是,当时我遇到了一个解析错误。我想在同一个过程中执行这个,所以像

是不可能的。

0 投票
1 回答
3420 浏览

linux - cron中带有bash选项的flock的正确语法是什么

我有以下 cron 工作

我需要将它与一些文件锁定一起使用,这样该任务就不会多次运行,并且环顾四周,我发现flock 是这种场景的好工具。

我的问题是,在上面使用 flock 的正确语法是什么?这就是我的猜测,但是,我有额外的用户定义等等。

这个对吗?