QPross

QPross一般用于启动外部程序或者执行指定的脚本:

但是在实际的过程中,执行某些脚本可能执行不成功,

[Warning] QProcessPrivate::createPipe: Cannot create pipe 0xb8ba00: Too many open files

原因是QProcess是通过创建文件执行的,发现文件打开数量超过限制。

[遇到这种问题,需要排查程序,看是否对文件操作只打开没有关闭的操作等。

当时排查我们的代码因为每隔一段时间,程序会调文件操作,只有open没有close,导致在QProcess执行时文件打开数量达到操作系统上线,结果QProcess执行不成功,程序没过多长时间就崩溃了。

当时的错误信息为:QProcessPrivate::createPipe: Cannot create pipe 0x1f38ee0: Too many open files;

参考的文档:

https://blog.csdn.net/qq_18298439/article/details/83896777

https://blog.csdn.net/qq_18581221/article/details/80963741

https://blog.51cto.com/12824426/2060594

===================================================================

sudo cat /proc/PID/limits

lsof -p PID | wc -l

在linux服务器上可以使用

ulimit -a
查看当前系统设置的打开文件数字。

使用

lsof -p pid | wc -l
查看某程序打开了多少文件。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值