USB経由でRaspberry Pi Model B +に接続されたPowerWalker VI 850 LCD UPSがあります。 NUTを使用して監視しようとしましたが、多くの問題があります。まず、プロトコル検出が正しく機能していないようで、protocol = mustek
それを指定しましたが、部分的に安定しているようです。これで、ナットドライバサービスを起動するたびに実際に接続されます。
しかし、もう1つの珍しい点は、USBデバイスが警告や明白な理由なしに変更を続けることです(たとえば、起動時や起動時に変更など/dev/bus/usb/001/005
)006
。私はudevルールに007
パラメータを追加してこの問題を解決しようとしました。SYMLINK
ACTION=="add", \
SUBSYSTEM=="usb", \
ATTR{idVendor}=="0665", ATTR{idProduct}=="5161", \
SYMLINK+="powerwalkerups" \
MODE="0660", GROUP="nut"
これは/dev/powerwalkerups
常に正しいバスデバイスを指します。しかし、少なくともUSBデバイスが魔法のように変わるたびに、ナットドライバが切断され、素晴らしい「データ古い」メッセージが表示されます。今、再起動するたびに、実際には良いプロトコルで正しく接続されて動作します。しかし、手動で行う必要がありますsystemctl restart nut-driver
。
データが古い場合、NUTがドライバを再起動する自動方法はありますか?それとも誰でもこのタスクを実行するために監視タイププロセスを推奨できますか?サービスが実際に停止していないため、systemd
サービスが失敗したとは見なされません。サービスを複数回再起動して接続の問題が解決するかどうかを確認するにはどうすればよいですか?
(または最初に接続が切断されるのを防ぐ方法を知っていますか?)
私のNUTホストの稼働時間は5日で、USBデバイスは005から012まで続きました。したがって、別のホストでIcinga2を実行しており、サービスを再起動することを検討します。ただし、これにはIcingaホストからNUTホストへのSSHアクセスが必要です。 :-P。より良い考えですか?
答え1
私が見つけました...私の問題はUSBデバイスの変更に関連していて、すでに上記のudevルールがあったので、RUN
次の説明を追加しました。
ACTION=="add", \
SUBSYSTEM=="usb", \
ATTR{idVendor}=="0665", ATTR{idProduct}=="5161", \
SYMLINK+="powerwalkerups", \
MODE="0660", GROUP="nut", \
RUN+="/bin/systemctl restart nut-driver"
これは、データが古くなったときにナットドライバを再起動せず、USBデバイスが再接続されたとき(または何をしても)再起動します。これで問題が解決したようです。