Если у меня есть родительская программа-координатор и рабочая программа, но программа-координатор создает все необходимые рабочие процессы.Если я хочу правильно реализовать метод alarm (), чтобы завершить все процессы и завершить программу через определенное время.
Это правильный способ его реализации?Текущий способ, которым я имею это, это теперь распечатывает сообщение соответствующее сообщение printf () для уничтожаемых рабочих процессов.
Примечание. Я реализовал игнорирование сигналов прерывания, чтобы больше рабочих процессов могло выполняться без беспокойства.
int main(int argc, char** argv)
{
signal(SIGINT, sig_ctrl);
signal(SIGALRM, sig_alarm);
alarm(5);
sleep(10);
//rest of program which creates the needed processes
}
void sig_ctrl(int sig)
{
printf("Hold on buddy, you're not terminating this program with CTRL^C.\n");
}
void sig_alarm(int sig)
{
sleep(0);
fflush(stdout);
printf("The alarm is sounding, all worker procceses will be...TERMINATED!");
raise(SIGTERM);
}