Executar um script de inicialização do programa C ++

0

Eu tenho um script no meu /etc/init.d/ que executa um aplicativo. Eu sou capaz de iniciar, parar e obter o status do serviço do terminal. Agora gostaria de iniciar o mesmo serviço do meu programa C++ . Existe alguma maneira diferente de usar system() para isso?

Obrigado ..

    
por Jackzz 07.01.2016 / 10:57

1 resposta

0

Você pode fazer isso usando fork() e exec()

pid_t pid = fork();
if (pid == 0) { // child process
    execl("/etc/init.d/servicename", "/etc/init.d/servicename", "start", (char*) 0);
    perror("execl"); // only get here when exec fails
    exit(0);
} else if (pid > 0) { // parent process
    wait(NULL); // wait for child to finish
} else { // error
    perror("fork");
}
    
por 07.01.2016 / 21:01