#single #instance #singleton #applications #running #file #error

single-instance

A rust library for single instance application

8 个版本

使用旧Rust 2015

0.3.3 2021年12月16日
0.3.2 2021年9月22日
0.3.1 2021年2月14日
0.2.0 2021年2月13日
0.1.0 2018年1月30日

#223 in 操作系统

Download history 2219/week @ 2024-03-14 2480/week @ 2024-03-21 2754/week @ 2024-03-28 1981/week @ 2024-04-04 2016/week @ 2024-04-11 2203/week @ 2024-04-18 1826/week @ 2024-04-25 2481/week @ 2024-05-02 2358/week @ 2024-05-09 2875/week @ 2024-05-16 1945/week @ 2024-05-23 2555/week @ 2024-05-30 2233/week @ 2024-06-06 2849/week @ 2024-06-13 2811/week @ 2024-06-20 2223/week @ 2024-06-27

10,542 每月下载量
16 个crate中使用 (15 直接)

MIT 许可证

9KB
156 代码行

single-instance

Crates.io Build Status

single-instance 提供一个API来检查是否有其他正在运行的实例。

详细信息

在Windows上,init SingleInstance 将创建一个名为给定 &str 的互斥锁,然后通过调用 GetLastError 来检查错误代码。在Linux上,init 将绑定具有给定名称的抽象Unix域套接字。在macos上,init 将创建或打开一个路径为给定 &str 的文件,然后调用 flock 在打开的文件上应用建议锁。

[dependencies]
single-instance = "0.3"

示例

extern crate single_instance;

use single_instance::SingleInstance;

fn main() {
    {
        let instance_a = SingleInstance::new("whatever").unwrap();
        assert!(instance_a.is_single());
        let instance_b = SingleInstance::new("whatever").unwrap();
        assert!(!instance_b.is_single());
    }
    let instance_c = SingleInstance::new("whatever").unwrap();
    assert!(instance_c.is_single());
}

依赖关系

~3MB
~61K SLoC