次のコードを使用して子プロセスを作成し、しばらくしてから強制終了します。
int pid;
if ((pid = fork()) < 0) {
printf("Error\n");
}
else if (pid == 0) {
printf("Child\n");
system("/usr/bin/./youtube-dl -o hello.mp4 http://www.youtube.com/watch?v=PDZcqBgCS74", NULL);
}
else {
printf("Father\n");
//system("ls");
printf("PId is %d",pid);
sleep(10);
kill(pid, SIGTERM);
}
問題は、10秒後にプログラムが停止するが、youtube-dlプロセスが停止しないことです。それはまだ続いています。私の要件は、プロセスを開始し、指定された時間が経過した後にそれを強制終了することです。私は正確に何を間違っているのですか。私が呼び出しているpidofyoutube-dlは、fork()から親プロセスに与えられたものとは異なることに気付きました。