set signal handler also when running in foreground

This commit is contained in:
kakwa 2019-04-11 00:08:52 +02:00
parent 0e0b11310d
commit 8fefcbaf6b
3 changed files with 15 additions and 8 deletions

View File

@ -7,6 +7,7 @@ typedef struct _code {
static void signal_handler_general(int sig_num); static void signal_handler_general(int sig_num);
static void signal_handler_up(int sig_num); static void signal_handler_up(int sig_num);
void set_sig_handler();
void skeleton_daemon(); void skeleton_daemon();
int init_pid(char *pidfile_path); int init_pid(char *pidfile_path);
int write_pid(char *pidfile_path); int write_pid(char *pidfile_path);

View File

@ -101,6 +101,8 @@ int main(int argc, char **argv) {
if (args.daemonize) if (args.daemonize)
skeleton_daemon(); skeleton_daemon();
else
set_sig_handler();
syslog(LOG_NOTICE, syslog(LOG_NOTICE,
"uts-server daemon starting with conf '%s' from working dir '%s'", "uts-server daemon starting with conf '%s' from working dir '%s'",

View File

@ -67,6 +67,17 @@ int write_pid(char *pidfile_path) {
return 1; return 1;
} }
void set_sig_handler() {
g_uts_sig_up = 0;
g_uts_sig = 0;
/* Catch, ignore and handle signals */
// TODO: Implement a working signal handler */
signal(SIGTERM, signal_handler_general);
signal(SIGINT, signal_handler_general);
signal(SIGHUP, signal_handler_up);
signal(SIGCHLD, SIG_IGN);
}
void skeleton_daemon() { void skeleton_daemon() {
pid_t pid; pid_t pid;
@ -85,14 +96,7 @@ void skeleton_daemon() {
if (setsid() < 0) if (setsid() < 0)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
g_uts_sig_up = 0; set_sig_handler();
g_uts_sig = 0;
/* Catch, ignore and handle signals */
// TODO: Implement a working signal handler */
signal(SIGTERM, signal_handler_general);
signal(SIGINT, signal_handler_general);
signal(SIGHUP, signal_handler_up);
signal(SIGCHLD, SIG_IGN);
/* Fork off for the second time*/ /* Fork off for the second time*/
pid = fork(); pid = fork();