package main import ( "fmt" "io/ioutil" "os" "syscall" ) func main() { fmt.Println("ready") lockfile := "lock" if _, err := os.Stat(lockfile); err != nil { fmt.Println("make lockfile") ioutil.WriteFile(lockfile, []byte(""), 0644) } fd, _ := syscall.Open("lock", syscall.O_RDONLY, 0000) defer syscall.Close(fd) if err := syscall.Flock(fd, syscall.LOCK_EX|syscall.LOCK_NB); err != nil { fmt.Println(err