Raspberry PiをVPNに接続し、数時間放置した。 SSHまたはVNC経由で接続を確認したとき、インターネットに接続されていないことに気づきました。再起動してVPNに再接続すると、再び機能します。
私の質問は:問題をどのように診断しますか?問題を解決するには?問題の原因を見つけるために見られるログファイルまたはsystemctlログがありますか?
自動化したいPiがインターネットに接続されていない場合は、再起動されます。。いくつかの.target
ファイルやルールを介してudev
「きれいな」方法でこれを行いたいと思います。
ベストアンサー1
再起動する必要はないかもしれません。 rpiがハングを検出した場合、VPN接続を再開するだけで十分です(ハードウェアエラーでない限り)。
ハング検出に関して特定のホストまたはIPアドレスがありますか?知るVPNがオンのときはアクセスできなければなりませんが、VPNがオフのときはアクセスできませんか?その場合はfping
、そのホストを試すクローンジョブを設定します。応答があれば、すべてが正常です。そうでない場合は、VPNを再起動してください。
それ以外の場合、VPN の中断がログに記録された場合はログを監視し、VPN の中断が発生した場合は VPN を再起動するスクリプトを作成します。たとえば、次から始めます。
tail -F /var/log/syslog |
awk '/your outage message/ { system "/path/to/vpn-restart-script" }'
または、次のコマンドを使用してPerlスクリプトを作成します。ファイル::尾基準寸法)。ちなみに、DebianのパッケージにFile::Tail
あるのでlibfile-tail-perl
、Raspbianでも利用できるはずです。
ログファイルに中断メッセージが見つからず、VPN接続がsystemdサービスによって開始されている場合は、それを使用して起動するかどうかsystemctl status <servicename>
を確認できます。
簡単に言えば、この問題を解決するには2つの部分があります。
VPNの起動を確実に検出します。ログファイルを監視するには、バックグラウンドで実行されているクローンジョブまたはスクリプトが必要な場合があります。中断を検出するには、複数のテスト条件が必要な場合があります。
そうでない場合は、VPN接続を再開してください。
systemctl restart servicename
VPNがシステムサービスを介して起動したとき。または/etc/init.d/vpn-service
SysV初期化時。 (この名前は正確ではなく、実際のサービス名のプレースホルダーのみです。)
これらの部分は互いに独立して解決することができ、解決する必要があります。