خدمة عالقة على Stopping...
يعرض snap-in كلمة Stopping ولا يتحرك. والجواب المعتاد هو Task Manager، وتخمين أي svchost.exe تعيش فيه، ثم End task، وهذا ينهي كل خدمة أخرى في تلك العملية أيضًا، دون أن يخبرك أيها كانت.
لماذا يحدث هذا
- الخدمة لا تردّ على طلب الإيقاف. يطلب منها Windows بلطف وينتظر. والخدمة التي تعطلت، أو التي تنتظر شيئًا لن يعود، لا تردّ أبدًا.
- شيء يعتمد عليها ما زال يعمل. يرفض المدير الإيقاف بدل أن يكسر الآخر، ويعرض snap-in ذلك على أنه انتظار.
- تشارك عمليتها مع غيرها. تعيش معظم خدمات Windows داخل
svchost.exeمشترك. وإنهاء تلك العملية ينهيها كلها، وهذا بالضبط ما يفعله Task Manager دون أن يسمّيها.
انظر قبل أن تنهي أي شيء
اسأل ما الذي سيذهب معها إن أُنهيت. لا يحدث شيء حتى تحذف --dry-run.
$ bws kill Spooler --dry-run
تسمّي المعاينة العملية برقمها، وتسمّي كل خدمة أخرى تعيش فيها، وتعرض خطوتين بدل واحدة: اطلب من الخدمة أن تتوقف، وفقط إذا لم ينجح ذلك أنهِ العملية. والخدمة التي تتوقف من تلقاء نفسها لا تُنهى أبدًا.
- الخيار
--forceيتخطى الخطوة المهذبة وينهي العملية فورًا. وهو يغيّر الخطة لا طريقة تشغيلها، فتعرض المعاينة خطوة واحدة بدل اثنتين ويظهر الفرق قبل أن يحدث أي شيء. - الخيار
--restartيعيد كل شيء بعد ذهاب العملية: العنصر الذي سألت عنه وكل ما كان يشاركها عمليتها. وبدونه يُترك الجهاز وتلك الخدمات متوقفة، ويقول التقرير كيف تبدؤها من جديد.
- الرفض يسبق الزر. برنامج تشغيل، أو عملية يحميها النظام، أو خدمة لا يقبل المدير طلب إيقافها: يُرفض ذلك عند بناء الخطة مع بيان السبب، لا بعد انتظار ستين ثانية.
- تحذير حين يهم الأمر. إذا كان العنصر مما لا يعمل الجهاز بدونه فإن الخطة تقول ذلك: إيقافه يُسقط الجهاز لا الخدمة وحدها.
إنهاء عملية هو الشيء الوحيد الذي تفعله هذه الأداة ولا يستطيع أحد رفضه نيابةً عن الجهاز. ولهذا هو أمر قائم بذاته، ولهذا تسمّي المعاينة كل خدمة تأخذها معها، ولهذا تأتي الخطوة المهذبة أولًا ما لم تقل غير ذلك.
الترتيب الأكثر أمانًا
- انظر ما هي.
bws show Spooler: العملية، وما يعتمد عليها، وما تعتمد عليه، وهل تقبل طلبات الإيقاف أصلًا. - جرّب الإيقاف العادي خطةً.
bws stop Spooler --dry-run --dependents. فإن كان الجواب رفضًا فهو يقول أيّ الأسباب الثلاثة هو. - إن لم تتوقف فانظر كم يكلّف إنهاؤها.
bws kill Spooler --dry-run، واقرأ قائمة الخدمات التي تشارك تلك العملية. - ثم افعل، مع طريق للعودة.
bws kill Spooler --restart. وينتهي التقرير بما لم ينجح والأوامر التي تعيد الأشياء.
وتعمل الأربع بالطريقة نفسها في النافذة: انقر بزر الفأرة الأيمن على صف، واختر Force stop...، واقرأ الخطة، والزر تحتها مسمّى بما سيفعله.
لماذا لا نستخدم Task Manager ببساطة
لأنه يجيب عن سؤال مختلف. يعرف Task Manager العمليات وهذه المشكلة عن الخدمات، والاثنتان لا تتطابقان واحدة بواحدة.
قد يضم svchost.exe المشترك اثنتي عشرة خدمة. وسينهيه Task Manager دون أن يقول أي اثنتي عشرة، ولا تعود أي منها من تلقاء نفسها، ولا شيء بعد ذلك يخبرك بما توقف. وبرنامج EDR الذي ينبّه إلى عملية تُنهي svchost.exe يؤدي عمله، ولا يستطيع أن يميّز نقرتك عن أي شيء آخر.