Как заставить программу перезапускаться? (Процесс Linux)

Я пытаюсь перезапустить свою программу, но, похоже, ничего не работает. Я пробовал использовать fork () , но после убийства родительского процесса дочерний также убивается.

КОД

void sigup_handler(int signum) {
    int pid = fork();
    if (pid == 0) {
        execve("prog2", NULL); 
    }
    else
        kill(getpid(), SIGTERM);
}

int main() {
    puts("Program 2 started.");
    signal(SIGHUP, sigup_handler);
    sleep(50); 
    puts("Program 2 terminated.");
    return 0;
}
17
задан Ashish Ahuja 15 January 2016 в 10:13
поделиться