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

関連情報