예제 #1
0
파일: main.go 프로젝트: cassava/pillr
func pimonLock() error {
	if xdg.FindRuntime(lockSuffix) != "" {
		return fmt.Errorf("pimon lock file already exists: %s", xdg.UserRuntime(lockSuffix))
	}

	f, err := xdg.OpenRuntime(lockSuffix, os.O_EXCL|os.O_CREATE|os.O_WRONLY)
	if err != nil {
		return fmt.Errorf("cannot create pimon lock file: %v", err)
	}
	fmt.Fprintln(f, os.Getpid())
	f.Close()
	return nil
}
예제 #2
0
파일: main.go 프로젝트: cassava/pillr
func pimonUnlock() {
	_ = os.Remove(xdg.UserRuntime(lockSuffix))
}