#include #include #include int main() { int stat; int sig; sigset_t set; sigemptyset(&set); printf("add signal SIGINT: %i\n", sigaddset(&set, SIGINT)); printf("add signal SIGKILL: %i\n", sigaddset(&set, SIGKILL)); printf("add signal SIGTERM: %i\n", sigaddset(&set, SIGTERM)); sigprocmask(SIG_BLOCK, &set, NULL); printf("Waiting...\n"); stat = sigwait(&set, &sig); printf("Wait complete: %i (%i)\n", sig, stat); printf("Stopped postgres: %i\n", system("service postgresql stop && sleep 5")); printf("Saved postgres: %i\n", system("bash /backup.sh")); return 0; }