我的脚本中有一个/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");
}