التحقق من حالة الشبكة والتحكم في PPP في البرنامج
-
09-06-2019 - |
سؤال
لذلك أقوم بتشغيل PPP على نظام التشغيل Linux باستخدام مودم خلوي.يحتاج البرنامج الذي أكتبه إلى معرفة ما إذا كان الرابط نشطًا قبل إرسال أي بيانات.
ما هي خياراتي للتحقق
- إذا كان الرابط متاحا
- إذا كان يوجه إلى خادم أتحكم فيه (لا ينتقل إلى الإنترنت كما قلت سابقًا)
وأيضًا، ما هي أفضل طريقة لإعادة تشغيله - أرغب في التحكم في البرنامج عندما يبدأ ويتوقف، لذلك أفترض أن init.d غير مناسب.استخدام system()
لا يبدو أنه يعطي PID، هل هناك خيارات أخرى إلى جانب ذلك fork()
والكمامة من exec??()
المكالمات؟
C على Linux على ARM (توزيع مخصص باستخدام buildroot).
المحلول
يمكنك استخدام ال ip-up
وظيفة البرنامج النصي لـ pppd لجعله ينفذ برنامجًا عندما تكون واجهة IP جاهزة وجاهزة.التفاصيل في صفحة الدليل pppd(8). - ابحث عن "ip-up".
لإعادة تشغيل pppd، استخدم الأمر linkname
المعلمة لتعيين اسم ملف pidfi معروف (/var/run/ppp-name.pid
).استخدم أيضًا persist
خيار.عندما تريد إعادة تشغيل pppd، أرسل ملف SIGHUP
الإشارة.مرة أخرى، هذا موصوف في صفحة الدليل.
نصائح أخرى
هل يمكن تحليل /proc/net/route
.