تسريع عملية إيقاف التشغيل في OS X

عندما تقوم بإيقاف تشغيل Mac ، سيحاول OS X الخروج من البرامج والخدمات الخلفية ؛ ومع ذلك ، في بعض الحالات ، يمكن أن يستغرق هذا وقتًا طويلاً بشكل استثنائي ، بحيث ينتظر النظام دقائق قبل إيقاف التشغيل في النهاية. أحيانًا يكون هذا هو النظام في انتظار تفاعل مثل حفظ مستند ، ولكن في أوقات أخرى يكون ذلك بسبب توقف خدمات الخلفية عن الاستجابة وينتظر النظام فترة محددة مسبقًا من الوقت قبل إرغامهم على الإقلاع.

بشكل عام ، يجب أن يستغرق نظام OS X بضع ثوانٍ فقط لإيقاف التشغيل ، لذلك إذا كان النظام يستغرق وقتًا طويلاً بشكل دائم ، فهذا يشير إلى وجود مشكلة تحتاج إلى المعالجة. في بعض الأحيان ، يمكن أن يكون هذا ببساطة جهازًا طرفيًا هامًا أو إثنان ، أو قد يكون من بعض التكوين الخاطئ لنظامك. في هذه الحالات ، يجب عليك محاولة بعض الإجراءات الأساسية لاستكشاف الأخطاء وإصلاحها للمساعدة في تحديد المشكلة وإصلاحها.

ومع ذلك ، إذا واجهت عمليات إيقاف مطولة بصورة منتظمة ولكن في فترات زمنية أكثر عشوائية ، فقد تكون مؤقتة وقد تكون ناتجة عن انتظار النظام لبعض العمليات في الخلفية.

بشكل افتراضي ، سينتظر النظام انتهاء العمليات في الخلفية من تلقاء نفسه ، ولكن إذا لم يكن الأمر كذلك ، فسوف يرسل هذه العمليات إشارة قتل بعد 20 ثانية ، وإذا كانت هذه العمليات يتم توقيتها على فترات زمنية مختلفة ، فإن هذا يمكن أن يمدد إيقاف التشغيل إلى عدد الدقائق.

لذلك ، بالنسبة لبعض العمليات في الخلفية التي تميل إلى التعليق أكثر من غيرها ، فإن تغيير هذا الوقت الافتراضي 20 ثانية إلى قيمة أقل سيؤدي إلى خروج النظام من هذه العمليات مسبقًا. في حين أن إجبار العمليات على الإقلاع ليس هو أفضل الممارسات ، فإن النظام يستعد بالفعل للقيام بذلك أثناء إيقاف التشغيل. مرة أخرى ، يسمح نظام OS X فقط للعملية بإخراج نافذة مدتها 20 ثانية ، ومن ثم سيقتل النظام العملية بقوة.

خدمات الخلفية التي يبدو أنها الجاني الشائعة في مثل هذه المهلات هي تلك التي تتعامل مع الاتصالات البينية ، وإدارة التوثيق ، ونشاط موارد الشبكة والشبكة. في نظام التشغيل العاشر تشمل هذه ما يلي:

  • AppleEvents - يسمح ذلك للعمليات بالاتصال مع بعضها البعض وقيادتها (وهو أساس AppleScript). قد ينتهي الوقت من انقطاع في الاتصال interprocess (على سبيل المثال ، إذا تم إجبار إحدى العمليات على الإنهاء عند إدارة الأحداث).
  • securityd - يدير هذا الوصول إلى keychains وأذونات أمان أخرى ، وقد ينتهي الوقت في حالة انتظار تفاعل المستخدم لبعض طلبات المصادقة.
  • mDNSResponder - يدير إجراءات DNS متعددة ، بما في ذلك الاكتشاف التلقائي لخوادم الشبكة والخدمات. قد يكون هذا مهلة من مشاكل في تكوين الشبكة المحلية.
  • diskarbitrationd - يقوم محكم القرص بمراقبة تركيب أنظمة الملفات المحلية وإمكانية الوصول إليها ، وقد ينتهي الوقت من حدوث خلل في محركات الأقراص المستخدمة ، أو إذا كان محرك الأقراص غير متصل أو في وضع السكون ويستغرق بعض الوقت للاستيقاظ.
  • مصادقة Apple ID - تقوم بإدارة عملية التحقق من معرف Apple الخاص بك للخدمات المختلفة ؛ قد يضيق الوقت من الوصول الضعيف إلى الشبكة أو عدم الاستجابة من خوادم Apple.

تتم إدارة مهلات هذه العمليات من خلال launchd عملية launcher النظام ، والتي تحمل المهلة الافتراضية 20 ثانية للعمليات. بتوجيه المشغل إلى تقصير هذه الفترة حتى النصف ، يمكنك تسريع عمليات إيقاف التشغيل بشكل كبير بسبب هذه العمليات.

لتغيير المهلات ، ستحتاج إلى تعديل ملفات البرنامج الخفية التي يستخدمها النظام لهذه الخدمات ، لذا تأكد أولاً من وجود نسخة احتياطية للنظام الخاص بك ، ثم قم بتشغيل الأوامر التالية ، التي يمكنك نسخها ولصقها (كل أمر هو خطين) في الأداة المساعدة OS X Terminal (في مجلد التطبيقات> الأدوات المساعدة):

افتراضيات sudo الكتابة / النظام / المكتبة / LaunchDaemons / ج \

om.apple.coreservices.appleevents ExitTimeOut -int 5

افتراضيات sudo الكتابة / النظام / المكتبة / LaunchDaemons / ج \

om.apple.securityd ExitTimeOut -int 5

افتراضيات sudo الكتابة / النظام / المكتبة / LaunchDaemons / ج \

om.apple.mDNSResponder ExitTimeOut -int 5

افتراضيات sudo الكتابة / النظام / المكتبة / LaunchDaemons / ج \

om.apple.diskarbitrationd ExitTimeOut -int 5

افتراضيات sudo الكتابة / النظام / المكتبة / LaunchAgents / كوم.

apple.coreservices.appleid.authentication ExitTimeOut -int 5

في هذه الأوامر كما هو مكتوب أعلاه ، يتم تعيين قيمة المهلة إلى "5" ، وهذا يعني أن النظام سينتظر 5 ثوانٍ قبل أن يقتل عملية أثناء إيقاف التشغيل ، ولكن يمكنك تغيير ذلك إلى أي قيمة عددية أكبر من الصفر (قيمة الصفر تعطل مهلة ، لذلك سوف تنتظر إلى أجل غير مسمى). لاحظ أن هذه الأوامر "sudo" ، والتي تعني عند تشغيل أول واحد ، ستحتاج إلى تقديم كلمة مرور المسؤول (التي لن تظهر في المحطة الطرفية عند المطالبة) ، ولكن لن تحتاج بعد ذلك إلى توفير كلمة المرور للأوامر التالية .

قم بلصق كلا الخطين لكل أمر موضح أعلاه في المحطة الطرفية ، وقم بتغيير قيمة 5 إلى رقم آخر إذا كنت ترغب في ذلك (يمكنك تشغيل الأوامر مرة أخرى في أي وقت بقيم مختلفة). عند الانتهاء ، قم بإعادة تشغيل جهاز الكمبيوتر الخاص بك ، ثم تحقق مما إذا كان هذا يحسن أوقات إيقاف التشغيل أم لا.

للتراجع عن هذه الإجراءات ، يمكنك تشغيل الأوامر مرة أخرى ولكن بقيمة 20 ، أو يمكنك تشغيل الأوامر التالية لإزالة إدخال إعدادات "ExitTimeOut" ، والذي لا يتم تضمينه بشكل افتراضي في برامج التشغيل هذه والبرامج النصية للوكيل:

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.coreservices.appleevents ExitTimeOut

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.securityd ExitTimeOut

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.mDNSResponder ExitTimeOut

sudo defaults delete / System / Library / LaunchDaemons / c \

om.apple.diskarbitrationd ExitTimeOut

افتراضيات sudo حذف / النظام / المكتبة / LaunchAgents / com \

.apple.coreservices.appleid.authentication ExitTimeOut


 

ترك تعليقك