tee 重定向导致子进程阻塞主进程
程序main_process(主进程)在完成自己的任务后,需要删除大量临时文件,耗时很长,于是用一个子进程在后台去做,直接执行程序没有问题,主进程结束后很快退出,子进程继续删除文件,
user]$ main_process
log...
user]$
主进程在执行时,会产生大量log,为了把log重定向到文件,加tee 执行,
user]$ main_process | & tee 1.log
log...
此时会等待,一直等到子进程删除完所有文件后,主进程才会退出,
主进程中删除文件尝试过两种方式,1.system(cmd),当然system内部也是fork了子进程去做,2.手动fork子进程去删除文件(使用execv, remove等),
这两种方式在加tee 后都有这个问题,请问原因是什么,怎么解决?