[golang] 파일 잠금으로 프로그램 중복 실행 방지하기
·
Language/Go
서론무려 Go언어에서 개발할 수 있는 GUI 프로그램에서는 중복 실행을 방지해야 하는 경우가 있다. 서버 프로그램은 특정 포트에 바인딩을 하므로, 이미 해당 포트가 사용 중이라면 두 번째 프로세스는 바인딩에 실패하며 중복 실행이 자연스럽게 방지된다. 하지만 일반 프로그램의 경우에는 포트 바인딩과 같은 방법을 사용할 수 없기 때문에, 별도로 중복 실행을 막기 위한 방법이 필요하다. 이를 해결하기 위해 Go 언어에서 파일 잠금을 이용하여 중복 실행을 방지하는 방법을 활용할 수 있다. 예제package mainimport ( "bufio" "fmt" "os" "syscall")func main() { file, err := os.OpenFile("myapp.lock", os.O_CREATE|os.O_RDWR,..