问题标签 [lockfile]
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.
python - Python:使用 PID 文件守护进程
我正在尝试使用该daemon
模块守护进程。代码看起来像这样
现在在这里您看到我正在创建一个锁定 PID 文件。现在我运行这个程序,它运行良好。现在为了测试 PID/daemon 功能,我使用启动另一个程序实例
现在这一次它不应该运行,因为之前的实例已经在运行。结果是第二个实例开始并进入一个循环(这不是while
我的测试函数中的循环)。在此第二个实例上运行strace
会连续提供以下输出
而且这个痕迹会一直出现,直到进程被强行杀死。锁定文件功能确实检测到存在现有锁定文件,但问题是程序没有退出。我也希望显示这个错误,表明 pid 文件已经存在。
如何才能做到这一点?
linux - 获取shell脚本的pid并保存到lockfile中
我使用 rsnapshot 进行备份,它创建了一个带有进程 pid 的锁定文件。现在我想从 rsnapshots 备份中进行备份,所以我正在寻找一种方法来为第二个/外部备份创建这个锁文件。
shell 脚本应该是这样的:
- 检查是否存在锁定文件,如果存在,请等待并重试(我正在使用 while true 循环执行此操作)
- 获取此 shell 脚本的 pid 并将其保存为 rsnapshot 锁定文件
- 开始第二次/外部备份
- 删除锁定文件
如何获取 PID 并将其保存为 rsnapshot 锁定文件?
bash - 删除过时的锁定文件 - rsnapshot 不喜欢我的锁定文件
我不得不暂停 rsnapshot 运行一些备份,所以我为此创建了一个锁定文件:
但是 rsnapshot 告诉我“删除过时的锁定文件”并继续进行备份。
我该怎么做才能使锁文件对 rsnapshot 不陈旧?
男人这样说:
如果 rsnapshot 启动时存在锁定文件,它将尝试读取该文件,如果不能,则停止并出现错误。如果它可以读取文件,它会查看是否存在具有文件中记录的 PID 的进程。如果是这样,rsnapshot 将停止并显示错误消息。如果没有具有该 PID 的进程,那么我们假设锁定文件是陈旧的并忽略它,除非stop_on_stale_lockfile 设置为 1,在这种情况下我们停止。
这意味着,只要 bashscript 运行,它就不会过时。但它不是这样工作的。
编辑:
该死的,我发现了问题,如果锁定文件由另一个用户拥有而不是 rsnapshot 运行,则会出现问题......
ruby-on-rails - Simplecov gem 使用过时的 lockfile 布尔参数
我有一个应用程序,我刚刚添加了 Simplecov 以获取代码覆盖率统计信息。添加此 Gem 后,我开始收到以下错误:
(当我启动 Rails 服务器时,打印出大约 20 行这样的行)
它们似乎只是警告,所以我并不担心,但摆脱它们会很好。Simplecov 和 lockfile gems 都已经是最新版本(Simplecov 0.8.1 和 lockfile 2.1.0),所以我无法更新其中一个......还有其他人遇到过这个吗?
编辑:其他环境细节
Jruby 1.7.6、Rails 3.1.3、Warbler 1.3.8、Bundler 1.3.5
linux - lockfile-create 在 bash 脚本中不起作用
这可能是一个非常简单的问题,但我不明白为什么它会这样。当我调用
它返回 0,下次运行时它会按预期返回一些其他代码(4),因为它已经创建了锁定文件。但是当我将相同的代码包装在 bash 脚本文件中时,它总是返回 0 作为退出代码。有人知道为什么它不起作用吗?
更新:完整的 bash 文件内容
这就是我运行它的方式./alert.sh。
groovy - 在 SoapUI 中使用 GroovyScript 访问和锁定外部文件
我想在 SoapUI 中的一个项目中同时运行一组 60 个测试用例。每个测试用例都需要使用一个值才能工作。这些值存储在外部文件(电子表格或文本文件)中。每个测试用例都需要从这个文件中获取一个值并使用它。但是,当我运行测试套件时,多个测试会获取相同的值,但是只能将一个值用于测试(同一值不能同时用于 1 个以上的测试)。我希望在soapUI中一次由一个测试用例访问外部文件。这是否涉及锁定或某种排队系统或我可以使用什么 groovyscript?谢谢
crash - memcached 已死,但子系统已锁定
服务 memcached 重新启动产生:
停止 memcached:[失败]
启动 memcached:[确定]
服务 memcached 状态产生:
memcached dead 但 subsys 已锁定
ls inside /var/lock/subsys/ 显示了一个名为 memcached 的文件
ls inside /var/run/ 显示没有名为 memcached 的 pid 文件
,此处还有另一个名为 memcached 的文件夹,但该文件夹中没有任何内容。
rm /var/lock/subsys/memcached 摆脱 memcached 锁定文件
服务重新启动 memcached yields:
停止 memcached:[失败]
启动 memcached:[确定]
服务 memcached 状态产生:
memcached dead 但 subsys 已锁定
我究竟做错了什么?
编辑:我想补充一点,我在发布之前已经搜索过这个,我要么已经在执行上述帖子中列出的步骤,要么该帖子已有多年历史。
ubuntu-12.04 - LockFailed: failed to create /scratch/
I am running a pyramid server and am trying to load data through celery. However, celery is does nothing. Its log file says:
LockFailed: failed to create /scratch/roman-work-1fb53700.7366
I found advice to change /scratch permissions by:
sudo chmod 777 /scratch
But terminal says that /scratch directory does not exist. Where should /scratch be situated so that I can create it if it really does not exist?
iphone - IBM Worklight 6.1 - 使用 buildtime.sh 脚本解锁生成的文件
我正在使用 IBM Worklight 6.1 并尝试将文件复制到iphone/native/www/worklight
文件夹中我尝试复制/擦除的文件是 cordova_plugins.js,为此我buildtime.sh
通过添加以下行编辑了 shell 脚本:
这在为 iPhone 部署后不起作用,并返回permission denied
错误。(手动)解锁文件后cordova_plugins.js
,脚本可以正常工作。
因此,我尝试使用相同的脚本外壳解锁文件,方法是添加
就在cp
指令之前,但它似乎没有改变任何东西(没有额外的错误,但问题仍然存在。)
有没有办法/www/worklight
在项目设置中或以编程方式解锁文件?如何用我的 buildtime.sh 脚本做到这一点?还有其他解决方法吗?
bash - 备份脚本需要一个 pid 锁来防止多个实例
我有一个运行每日 rsync 增量备份的 bash 脚本。
我的问题是我最终运行了多个实例。我是 bash 脚本的新手,所以我不确定我的脚本是否有问题?贴在下面。
但我读过有关 pid 锁定文件的信息?
谁能告诉我如何将它添加到我的脚本中?
所以看起来像这样?