搜索
linux - 根据编译时终端的显示判断编译是否卡住的问题
巴扎黑
巴扎黑 2017-04-17 11:25:14
[Linux讨论组]

需求如下: 编译时会卡住,所以需要当终端上显示的编译信息在一段时间不更新后重新编译

1. 开始时认为编译信息写到标准输出时对应的编译线程的标准输出文件的修改时间会改变,所以想通过shell脚本取得编译的进程pid,然后将当前时间与文件/proc/pid/fd/1的修改时间比较。 但是现在发现编译信息写到标准输出后/proc/pid/fd/1的修改时间并不会改变。

上面的想法是否有其它的实现方法?

2. 还有一个想法是将编译信息重定向到文件,然后判断文件的修改时间或判断文件的最后一行是否有变化。但是因为编译信息很多,全写入文件估计会使文件特别大。

能不能使文件只保存最新的编译信息?

======================================================
问题解决了

其实是自己没有再多想一想,/proc/pid/fd/1是一个符号链接,指向的是/dev/pts/n,也就是编译的线程将stdout输出去了/dev/pts/n设备上了,而当终端有内容更新时/dev/pts/n的修改时间就会变化。
所以根据/dev/pts/n的修改时间就可以判断编译是否卡住了

PS:感谢两位回答,提供了另外的思路

巴扎黑
巴扎黑

全部回复(2)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板