【问题标题】:Platform independent system lock for command line program命令行程序的平台无关系统锁
【发布时间】:2016-09-10 05:36:05
【问题描述】:

我有一个作为命令行程序运行的库。我想给用户设置一个锁的选项,这样命令行程序就不能运行两次 - 也就是说 - 如果它启动,它不能再次执行,直到它完成,从任何终端会话.

锁应该适用于登录到系统的任何用户 - 我假设我们对文件使用了一些原子操作,但那会是什么类型的操作?它必须是故障安全的。如果出现错误,用户可以使用 --force 选项覆盖锁定。

关于如何在无需设置任何第三方软件的情况下实现此功能的任何想法?

可能的实现:也许最简单的方法是将文件写入文件系统并在程序退出时将其删除。任何第二个出现的程序都会尝试写入相同的文件并得到 EEXIST 错误。

【问题讨论】:

    标签: windows macos unix


    【解决方案1】:

    尝试在某个共享区域创建锁文件,并在启动前检查它是否退出

    还要确保删除该共享文件的权限仅适用于一组管理员

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-27
      • 2010-10-14
      • 2011-02-12
      • 2017-10-09
      • 2010-09-10
      相关资源
      最近更新 更多