[go] 시그널 핸들러 등록
다음은 Go 언어에서 시그널 핸들러를 등록하는 예제입니다.
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
// 시그널을 받을 채널 생성
sig := make(chan os.Signal, 1)
signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
// 시그널 핸들링
go func() {
s := <-sig
fmt.Println("Received signal:", s)
// 종료 또는 정리 작업 수행
// ...
os.Exit(1)
}()
// 프로그램 실행
// ...
}
위 예제에서는 os/signal
패키지의 Notify
함수를 사용하여 SIGINT
와 SIGTERM
시그널을 받을 채널에 등록합니다. 그런 다음 고루틴을 사용하여 해당 채널에서 시그널을 수신하고 처리하는 함수를 실행합니다.
시그널 핸들러를 등록함으로써 프로그램이 안전하게 종료될 수 있도록 할 수 있습니다.
참고 자료: