データが古く、USBデバイスが変更された場合は、ナットドライバを再起動してください。

データが古く、USBデバイスが変更された場合は、ナットドライバを再起動してください。

USB経由でRaspberry Pi Model B +に接続されたPowerWalker VI 850 LCD UPSがあります。 NUTを使用して監視しようとしましたが、多くの問題があります。まず、プロトコル検出が正しく機能していないようで、protocol = mustekそれを指定しましたが、部分的に安定しているようです。これで、ナットドライバサービスを起動するたびに実際に接続されます。

しかし、もう1つの珍しい点は、USBデバイスが警告や明白な理由なしに変更を続けることです(たとえば、起動時や起動時に変更など/dev/bus/usb/001/005006。私は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デバイスが再接続されたとき(または何をしても)再起動します。これで問題が解決したようです。

おすすめ記事