[go] 시그널 처리 함수
시그널을 처리하기 위해서는 우선 시그널을 수신할 채널을 만들고, 해당 채널에 받은 시그널에 대한 처리를 정의해야 한다. 아래는 시그널을 처리하는 예제 코드이다.
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
// 시그널을 수신하여 처리
sig := <-sigChan
fmt.Println("수신한 시그널:", sig)
}
위 코드에서는 우선 os/signal 패키지를 임포트하여 사용하고, 시그널을 받을 채널을 만들었다. 그리고 signal.Notify 함수를 사용하여 받을 시그널을 등록한다. 이후 채널을 통해 시그널을 수신하여 처리하도록 하였다.
시그널 처리는 graceful shutdown(우아한 종료)이나 강제 종료 등 프로그램의 안정성을 보장하기 위해 중요한 요소이므로, 필요에 따라 적절한 시그널 처리 로직을 정의하여 사용하는 것이 좋다.
참고 자료:
- https://golang.org/pkg/os/signal/