/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");
}