我正在使用以下代码创建一个子进程,然后在一段时间后将其终止。
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 进程没有。它仍在继续。我的要求是我想启动一个进程并在指定的时间后终止它。我到底做错了什么。我观察到我正在调用的 pidof youtube-dl 与从 fork() 提供给我的父进程的 pidof 不同。