问题标签 [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 投票
11 回答
12005 浏览

firefox - 使用 AppleScript 从 Web 浏览器最前面的窗口中获取 URL:权威列表

我构建了一个[widget][1],它从 Safari 最前面的窗口中获取 URL,然后允许您使用 tr.im API 缩短它。像一样甜。

我想让这更灵活,所以正在研究如何从其他浏览器获取 URL。这是适用于 Safari 的 AppleScript:

经过一番挖掘,我确定以下内容可能适用于 Firefox(尽管有人告诉我这对他不起作用,可能与某些扩展发生冲突?):

注意:以上是一个不太理想的实践示例,依赖于列表项的位置。有关 Firefox 的更好解决方案,请参见下文。

我想做的是在这里为 Mac 上的每个现代浏览器建立一个明确的等价物列表:Opera、Camino、Flock 等。

更新:在我对该主题的研究中,我在MacOSXHints.com上遇到了一个有用的帖子。我下面的大部分答案都是基于该讨论。

更新 2:我已将此页面上的 AppleScript 合并到 [widget][1] 中。它似乎工作得很好。

0 投票
2 回答
3538 浏览

perl - Windows 上 Perl 的flock() 在哪里?

我有一个要在 Windows 上运行的 Perl 脚本,使用Strawberry PerlActivePerl;我不在乎哪个。然而,这个脚本使用flock()调用,这似乎不包含在任何一个 Perl 版本中。

任何人都可以帮助启动并运行它吗?

0 投票
4 回答
2817 浏览

php - PHPflock() - 引擎盖下是什么?

折腾了半个小时的PHP源码后,我放弃了。:P 问题是——在 Gentoo Linux 系统上 PHP 的 flock() 函数调用归结为什么系统调用?我遇到了一些问题(比如每 20 次循环迭代中阻塞 30 秒的问题),我想知道为什么会这样。

0 投票
3 回答
25830 浏览

linux - 如何使用linuxflock命令来防止另一个root进程删除文件?

我想阻止我的一个根进程删除某个文件。所以我遇到了flock 命令,它似乎符合我的需要,但我没有得到它的语法。

如果我只表示一个共享锁,它就不起作用:

如果我添加一个超时参数,它仍然不起作用:

似乎是这样,它适合的flock [-sxun][-w #] fd#方式。(这个fd#参数是什么?)

所以,我尝试了:

使用flock -s -w5 "./file.xml" -c "tail -3 ./file.xml"并且它起作用了,执行了 ./file.xml 处的 tail 命令。

但我想知道,锁定是在命令后结束还是在命令执行结束后持续 5 秒?我的主要问题是,如何防止另一个 root 进程删除 linux 中的文件?

0 投票
14 回答
131538 浏览

linux - 确保只有一个 Bash 脚本实例正在运行的最佳方法是什么?

确保给定脚本只有一个实例正在运行的最简单/最好的方法是什么——假设它是 Linux 上的 Bash?

目前我正在做:

但它有几个问题:

  1. 它将检查放在脚本之外
  2. 它不允许我从不同的帐户运行相同的脚本 - 我有时会喜欢。
  3. -C仅检查进程名称的前 14 个字符

当然,我可以编写自己的 pidfile 处理,但我觉得应该有一个简单的方法来做到这一点。

0 投票
1 回答
65 浏览

python - 全局磁盘资源不可用

如果我有多个服务器用来访问锁定文件的全局磁盘资源(isilon 文件服务器上的挂载点)。如果全局磁盘不可用并且服务器无法访问全局锁定文件,有什么好的方法来处理这种情况?谢谢,道格

0 投票
4 回答
5993 浏览

bash - 如何检查flock执行的命令的退出代码?

大家好。我正在设置一个 cron 作业来执行一个 bash 脚本,我担心下一个可能会在前一个结束之前开始。用谷歌搜索一下,解决这个问题的一种流行方法是flock命令,以下列方式使用:

这很好用。但是,如果我想检查退出代码myscript.sh怎么办?无论它返回什么退出代码都会被flock's 覆盖,所以我无法知道它是否成功执行。

0 投票
7 回答
3360 浏览

php - 如何在大型 php 应用程序中写入文件(多问)

在大型 php 应用程序中写入文件的最佳方法是什么。可以说每秒需要大量写入。最好的方法是如何解决这个问题。

我可以打开文件并附加数据吗?或者我应该打开、锁定、写入和解锁。

文件会发生什么,需要写入其他数据。这个活动会丢失,还是会被保存。如果这将被保存将停止应用程序。

如果你去过,谢谢你的阅读!

0 投票
1 回答
2277 浏览

linux - 羊群锁定顺序?

我使用来自 http://www.tuxradar.com/practicalphp/8/11/0的简单测试脚本, 就像这样

我打开了 5 个 shell 并一个接一个地执行脚本,脚本阻塞直到锁被释放,然后在释放后继续

我对 php 的东西不是很感兴趣,但我的问题是:有人知道获得 flock() 的顺序吗?

是否有一个简单的确定性顺序,例如队列,或者内核“只是”通过“更高级的规则”选择一个?

0 投票
1 回答
4429 浏览

linux - 如果 bash 未能获得锁,为什么不退出超时的羊群?

我正在玩 using flock,这是一个用于文件锁定的 bash 命令,以防止代码的两个不同实例多次运行。

我正在使用这个测试代码:

我正在运行 2 个子外壳(背景)。(flock NUM; ...) NUM>FILE语法来自的flock手册页

我希望第一个子shell 会在 test.lock 上获得一个独占锁,然后等待 10 秒,然后打印“原始完成”,一直持有锁。第二个 subshel​​l 或多或少同时启动,等待 2 秒,然后尝试在 test.lock 上获得锁,但 2 秒后超时。如果它得到一个锁,那么它会打印“afinished”。如果它没有获得锁,则该子shell 应该停止,并且不应该打印任何内容。

由于第一个子shell 等待的时间更长,它会保持锁10 秒,所以第二个子shell 不应该得到锁,也不应该完成。即一个应该看到“原始完成”打印,而不是两者。

实际发生的是打印“完成”,然后打印“原始完成”。

这意味着第二个子shell要么(a)没有使用与第一个子shell相同的锁,要么(b)它未能获得锁,但继续执行,或者(c)其他东西。

为什么这些锁不能按我的预期工作?