/* * Processo trata SIGTERM antes de morrer. * Mate o processo com um dos comandos abaixo: * kill -s SIGKILL * kill -s SIGTERM * kill -s SIGINT ou C-c * kill -s SIGQUIT ou C-\ */ #include #include #include void trata_adeus(int signum) { printf("Adeus mundo cruel.\n"); /* Permite que o processo pai (provavelmente a shell) identifique corretamente a causa da morte. */ signal(signum, SIG_DFL); raise(signum); } int main() { printf ("Meu pid e': %d \n", getpid()); if (signal(SIGKILL, trata_adeus) == SIG_ERR) printf("Não é possível tratar SIGKILL.\n"); if (signal(SIGTERM, trata_adeus) == SIG_ERR) printf("Não é possível tratar SIGTERM.\n"); if (signal(SIGINT, trata_adeus) == SIG_ERR) printf("Não é possível tratar SIGINT.\n"); if (signal(SIGQUIT, trata_adeus) == SIG_ERR) printf("Não é possível tratar SIGQUIT.\n"); while (1) sleep(1); return 0; }