윈도용 프로그램을 Go로 개발하다보면 중복실행을 원치 않을 경우가 있습니다. 이런때 윈도 API 의 뮤텍스 관련 함수를 이용하면 같은 프로그램의 중복실행을 방지할 수 있습니다.
Bash
go get github.com/rodolfoag/gow32
위 패키지 설치가 필요합니다.
Go
/**
* checkMutex
**/
func checkMutex(mname string) bool {
_, err := gow32.CreateMutex(mname)
if err != nil {
if int(err.(syscall.Errno)) == gow32.ERROR_ALREADY_EXISTS {
return false
}
}
return true
}
리턴 값이 false 이면 이미 같은 실행파일이 실행중인겁니다.