tee 重定向导致子进程阻塞主进程

weixin_43694353 2019-06-26 03:12:19
程序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 后都有这个问题,请问原因是什么,怎么解决?
...全文
88 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,772

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧