我目前正在研究使用ACR122U阅读器的NFC系统,而不是使用构造函数驱动程序导致这些驱动程序的偶然崩溃。 这里的问题是,当它崩溃时,整个过程不会崩溃,我的程序继续运行,但驱动程序没有。 (不必说它使我的代码无用) 我知道重新启动崩溃的程序但不是崩溃的驱动程序的方法。我想过使用看门狗硬重置树莓,但不用说重启不是最好的选择,因为它需要时间。 (我正在使用第一个Raspberry)。 那么,有没有办法只重新启动驱动程序,更重要的是,检测它何时失败?
答案 0 :(得分:0)
#!/usr/bin/env bash
command="/your/path/to/your_script"
log="prog.log"
match="error libnfc"
matchnosp="$(echo -e "${match}" | tr -d '[:space:]')"
$command > "$log" 2>&1 &
pid=$!
while sleep 2
do
if fgrep --quiet "$matchnosp" "$log"
then
echo "SOME MESSAGE"
kill $(pidof your_script)
$command > "$log" 2>&1 &
sleep 5
truncate -s 0 $log
echo "SOME OTHER MESSAGE..."
fi
done
当某些消息匹配"错误libnfc"可以在日志文件中找到。