سؤال

في عملية الأصل ، لقد بدأت صغيرة-lr(livereload) الخادم ، تليها spawing طفل العملية التي تبدو التغييرات إلى ملفات css.كيف تمر على livereload الخادم إلى عملية طفل أو هل من الممكن الاستعلام عن livereload الخادم الذي يعمل حاليا في عملية الطفل بحيث لا تخلق مرة أخرى على الاستخدام بالفعل خطأ الميناء.

نفس الحالة مع عقدة ملقم http.يمكنني أن أعرف إذا كان الملقم قيد التشغيل بالفعل استخدام هذا بدلا من إنشاء واحدة جديدة.

هل كانت مفيدة؟

المحلول

هل من الممكن الاستعلام عن livereload - من الممكن يمكن تنفيذها في أكثر من طريقة واحدة.

  1. استخدام stdout/stdin للتواصل مع عملية طفل.للحصول على وصف تفصيلي نظرة هنا.أساسا يمكنك إرسال الرسائل من عملية إلى أخرى و الرد عليها.

  2. استخدام http.request للتحقق إذا كان المنفذ قيد الاستخدام.

  3. يمكنك استخدام ملف: العملية مع الخادم يبقى الملف مفتوحا في وضع الكتابة - محتوى الملف مخازن الميناء الذي يعمل الخادم (إذا لزم الأمر).

  4. يمكنك استخدام مآخذ من أجل التواصل بين العملية أيضا.

في الأساس لا شيء من ما سبق ضمانات 100% السرية ، لذلك عليك أن try/catch عن الأخطاء على أي حال:الملقم قد يموت فقط بعد التحقق ، ولكن قبل أن أردت أن تفعل شيئا مع ذلك.

كيف تمر على livereload الخادم إلى عملية طفل - إذا كنت تقصد مشاركة كائن بين عملية مختلفة أنه بالتأكيد من السؤال ؛ إذا كنت تقصد تغيير ملكية الكائن أنني بعض 99,99 ٪ على يقين من أنه ليس من الممكن لا.

ما هي المشكلة مع وجود واحد فقط العملية المسؤولة عن تشغيل الخادم ؟ و لماذا لا تستخدم ، دعونا نقول ، إلى الأبد أن تأخذ الرعاية من تشغيل و إعادة تشغيل الملقم إذا لزم الأمر ؟

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