用于命令行程序的平台独立系统锁

时间:2016-05-13 21:53:04

标签: windows macos unix

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

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

如何实现这一点而不必设置任何第三方软件?

潜在的实现:也许最简单的方法是将文件写入文件系统并在程序退出时删除它。第二个进入的程序将尝试写入同一文件并获得EEXIST错误。

1 个答案:

答案 0 :(得分:1)

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

另外,请确保删除该共享中的文件的权限仅适用于一组管理员