ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

Golang program to handle different types of signals

Here, we are going to learn how to handle different types of signals in Golang (Go Language)?
Submitted by Nidhi, on May 08, 2021

Problem Solution:

Here, we will handle different kinds of signals and print the appropriate message on the console screen.

Program/Source Code:

The source code to handle different types of the signal is given below. The given program is compiled and executed on the ubuntu 18.04 operating system successfully.

// Golang program to handle different types of signals
package main

import (
	"fmt"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	SigChan := make(chan os.Signal, 1)

	signal.Notify(SigChan, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)

	sig := <-SigChan

	switch sig {
	case syscall.SIGHUP:
		fmt.Println("\nSIGHUP signal generated")

	case syscall.SIGINT:
		fmt.Println("\nSIGINT signal generated")

	case syscall.SIGTERM:
		fmt.Println("\nSIGTERM signal generated")

	case syscall.SIGQUIT:
		fmt.Println("\nSIGQUIT signal generated")

	default:
		fmt.Println("\nUNKNOWN signal generated")
	}
}

Output:

$ go run signal.go 
^C
SIGINT signal generated

Explanation:

In the above program, we declare the package main. The main package is used to tell the Go language compiler that the package must be compiled and produced the executable file. Here, we imported the required packages to predefined functions.

In the main() function, we created a channel SigChan to receive the signal. And, we specified different types of signals in the signal.Notify() function to accept specify signal and print appropriate message using switch() block on the console screen.

Golang Signals Programs »



ADVERTISEMENT




Comments and Discussions

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.