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