التحقق من حالة الشبكة والتحكم في PPP في البرنامج

StackOverflow https://stackoverflow.com/questions/51296

سؤال

لذلك أقوم بتشغيل 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top