summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2009-11-08 12:46:34 +0100
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2009-11-08 12:46:34 +0100
commitaf6c7af6784b1e1b720077f7814cb07b0127b4bb (patch)
treeb2c861da93bb3e8c6b35534115bd0b427a76d108
parent16f075f95d55466856cf7f3fdea2c503b2fcd7cf (diff)
added sigterm handler
-rw-r--r--main.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/main.c b/main.c
index a09da293..eab1d1d6 100644
--- a/main.c
+++ b/main.c
@@ -29,6 +29,7 @@
#include <sys/fcntl.h>
#include <sys/errno.h>
#include <sys/prctl.h>
+#include <signal.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
@@ -555,6 +556,15 @@ on_trayicon_popup_menu (GtkWidget *widget,
return FALSE;
}
+void
+sigterm_handler (int sig) {
+ fprintf (stderr, "got sigterm, saving...\n");
+ pl_save (defpl);
+ conf_save ();
+ fprintf (stderr, "bye.\n");
+ exit (0);
+}
+
int
main (int argc, char *argv[]) {
srand (time (NULL));
@@ -655,6 +665,7 @@ main (int argc, char *argv[]) {
}
close(s);
+ signal (SIGTERM, sigterm_handler);
// become a server
server_start ();