Handling OS signals
When writing CLI applications, there are occasions when a developer wants to handle OS signals. The most common example is a user trying to exit a program, usually through a keyboard shortcut.
In these cases, you may want to do some file cleanup before exiting or cancel a call you made to a remote system.
In this section, we will talk about how you can capture and respond to these events to make your applications more robust.
Capturing an OS signal
Go deals with two types of OS signals:
- Synchronous
- Asynchronous
Synchronous signals generally revolve around program errors. Go treats these as runtime panics, and therefore, interception of these can be handled with a defer
statement.
There are different asynchronous signals, depending on the platform, but for a Go programmer, the most relevant are as follows:
SIGHUP
: The connected terminal disconnected.SIGTERM
: Please quit and do cleanup (generated from a program).
...