GO·NOTE

一份 Go 开发工程师的学习笔记

0%

go-syscall-保证系统单例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "syscall"

const LockFile = "singleton.lock"

func Singleton() {
if fd, err := syscall.Open(LockFile, syscall.O_CREAT|syscall.O_RDONLY, 0644); err != nil {
panic(err)
} else if err := syscall.Flock(fd, syscall.LOCK_EX|syscall.LOCK_NB); err != nil {
panic(err)
}
return
}

系统调用命令大全