Anderes Programm als Child-Prozess
-
Hallo,
Ich möchte bei meinem neuesten Projekt mehrere Prozesse als Child-Prozesse starten. fork() ist hier keine Lösung, da es eigenständige Programme sind. Ich brauche auch die pid der Prozesse, um sie nacher bei Bedarf killen zu können (man kann doch nur Child-Prozesse ohne spezielle Sonderrechte killen, oder?)
Da mein Design davon abhängig ist, möchte ich wissen, ob das funktioniert, und wenn ja, wie.Grüße,
PI
-
Das sollte gehen, indem du erst fork() machst und dann ein exec(). Im Prinzip ist dass das was system() machen würde, außer dass du durch das manuelle fork an dir pid kommst.
-
Hey, auf die Idee bin ich gar nicht gekommen
Dann müsste das ja in etwa wie folgt funktionieren:
switch(pid_t pid = fork()) { case -1: // Fehler break; case 0: exec(args); break; default: // Parent: pid merken }
-
Genau. Hinter das exec() noch ein exit(), damit der Prozess nicht weiterläuft falls exec fehlschlägt.
-
Vielen Danke für die Hilfe