C++ 프로그램에서 init 스크립트 실행

C++ 프로그램에서 init 스크립트 실행

/etc/init.d/내 스크립트에 응용 프로그램을 실행하는 스크립트가 있습니다 . 서비스를 시작, 중지하고 터미널에서 서비스 상태를 가져올 수 있습니다. 이제 내 프로그램에서 C++동일한 서비스를 시작하고 싶습니다. system()이 목적 으로 사용하는 것 외에 다른 방법이 있습니까?

감사해요..

답변1

fork()다음을 사용하여 이 작업을 수행 할 수 있습니다.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");
}

관련 정보