blob: e993ae3ea76f0bb53b3645f52864c2173d8fc7c4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "signal.h"
#include <string.h>
sig_atomic_t signal_running;
static void
handle_signal_shutdown(int sig)
{
signal_running = 0;
}
int
signal_setup_actions()
{
int rc;
struct sigaction action;
signal_running = 1;
memset(&action, 0, sizeof(action));
action.sa_handler = handle_signal_shutdown;
rc = sigemptyset(&action.sa_mask);
if(rc < 0) return rc;
rc = sigaction(SIGINT, &action, 0);
if(rc < 0) return rc;
rc = sigemptyset(&action.sa_mask);
if(rc < 0) return rc;
rc = sigaction(SIGTERM, &action, 0);
if(rc < 0) return rc;
return rc;
}
|