Ein Programm aus einem C++-Programm heraus starten und wieder beenden
-
Hallo,
ich würde gerne ein zweites Programm von meiner Applikation heraus
starten und genau es zu einem bestimmten Zeitpunkt wieder beenden.Das starten funktioniert sicherlich mit popen("./prog",r).
Aber wie kann ich genau dieses Programm wieder beenden?
Irgendwie muss ich von diesem Programm die Prozess-ID herausfinden
und dann per kill -9 killen.Über Tipps wäre ich sehr dankbar.
Viele Grüße
-
mit man: vfork/man: execl sollte das einfach sein
grob sollte das ungefähr so aussehen:
pid_t pid = vfork(); if(pid < 0) { perror("vfork"); } else if(pid == 0) { if(execl("prog", "prog", 0x0) == -1) { perror("execl"); _exit(1); } _exit(0); } sleep(10); // ... kill(pid, SIGTERM); sleep(1); if(waitpid(pid, 0x0, WNOHANG) != pid) { kill(pid, SIGKILL); }
wenn du eine pipe willst, musst du die mit man: pipe(2) da noch einbauen.