Я хочу использовать munin для построения графика ttyACM0 в Linux, но munin не может создать график. Я нашел информацию в "munin-node.log". он показывает, что истекло время ожидания «Температура обслуживания». Поэтому я изменил тайм-аут на 60 или 120 в /munin/plugin-conf.d/munin-node
, Но это не работает. Также истекло время ожидания.
Вот часть моего кода:
if [ "$1" = "config" ]; then
echo 'graph_title Temperature of board'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel temperature(°C)'
echo 'graph_category temperature'
echo 'graph_scale no'
echo 'graph_info This graph shows the temperature of board'
for i in 1 2 3 4 5; do
case $i in
1)
TYPE="Under PCB"
;;
2)
TYPE="HDD"
;;
3)
TYPE="PHY"
;;
4)
TYPE="CPU"
;;
5)
TYPE="Ambience"
;;
esac
name=$(clean_name $TYPE)
if [ "$TYPE" != "NA" ]; then
echo "temp_$name.label $TYPE";
fi
done
exit 0
fi
for i in 1 2 3 4 5; do
case $i in
1)
TYPE="Under PCB"
VALUE=$(head -1 /dev/ttyACM0 | awk '{print $1}')
;;
2)
TYPE="HDD"
VALUE=$(head -1 /dev/ttyACM0 | awk '{print $2}')
;;
3)
TYPE="PHY"
VALUE=$(head -1 /dev/ttyACM0 | awk '{print $3}')
;;
4)
TYPE="CPU"
VALUE=$(head -1 /dev/ttyACM0 | awk '{print $4}')
;;
5)
TYPE="Ambience"
VALUE=$(head -1 /dev/ttyACM0 | awk '{print $5}')
;;
esac
name=$(clean_name $TYPE)
if [ "$TYPE" != "NA" ]; then
echo "temp_$name.value $VALUE"
fi
С точки зрения Munin, код вашего плагина выглядит правильно.
Основываясь на этом коде, я подозреваю, что все, что пишется в ttyACM0, этого не сделано или должно быть опрошено, прежде чем что-либо писать. Если из / dev / ttyACM0 нечего читать, головные вызовы будут блокироваться (ждать), пока не станут доступны другие данные.
Если это коммерческий датчик температуры, я бы проверил, есть ли для него поддерживаемый инструмент командной строки, и использовал бы его при написании плагина munin.