Ve zdrojáku mám na přehrávání zvuku toto:
int pid = fork();
if (pid == 0) {
int pid2 = fork();
if (pid2) {
exit(0);
} else if (!pid2) {
execl("/usr/bin/aplay", "aplay", "muzika.wav", (char *) 0);
} else {
/* error */
}
} else {
int status;
waitpid(pid, &status, 0);
}
Dvojitým forkováním bych se měl zbavit zombie bez nutnosti čekání na ukončení přehrávání. Většinou to funguje, ale po několika desítkách spuštění zvuku mi zůstalo několik zombee procesů. Ve výpisu ps -a byly pojmenované jako původní proces. Nevíte jakto, že zůstávají a jak se jich zbavit?