我需要读取 FIFO 文件,因为它到达 FIFO 文件中的 snmp 陷阱,我需要按顺序读取和处理它们。因此,我创建了一个 while (true) 循环来开始读取 FIFO 文件行并处理输出。问题是使用脚本后机器的 cpu 增加了 100%。我不知道是否在脚本中插入睡眠 3 秒。会读取 fifo 文件的所有行吗?或者可能是它没有读取所有行? 我需要降低脚本的 CPU 性能
我的代码是这样的:
while true
do
if read linea; then
initialice
PintaInfo "$linea"
......
感谢并抱歉我的英语!
性能不佳,但是
while true; do
if ! read linea; then
sleep 0.1
else
initialice
PintaInfo "$linea"
fi
应该可以解决问题。 (理想情况下应该使用 inotifywait 而不是 sleep,但在本地测试时我无法让 inotifywait 在 fifo 写入上触发 🤷u200d♂️也尝试过read -t timeout来减少CPU使用率,但没有。)