কম্পিউটার টিউটোরিয়াল

Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা

"Stopping" বা "Starting" স্টেটে আটকে যাওয়া একটি উইন্ডোজ সার্ভিস প্রসেস ম্যানুয়ালি কিভাবে কিল করবেন? অধিকাংশ উইন্ডোজ অ্যাডমিনিস্ট্রেটর এই সমস্যায় পড়েছেন: সার্ভিস শুরু/বন্ধ/রিস্টার্ট করার চেষ্টা করলে এটি Stopping (বা Starting) স্ট্যাটাসে আটকে যায়। Service management console (services.msc) থেকে এই সার্ভিস বন্ধ করা যাবে না, কারণ এই সার্ভিসের সব কন্ট্রোল বাটন নিষ্ক্রিয় (গ্রে-আউট) হয়ে যায়। সবচেয়ে সহজ পথ হল উইন্ডোজ রিস্টার্ট করা, কিন্তু এটি সবসময় গ্রহণযোগ্য নয়। চলুন বিকল্প পদ্ধতিগুলো দেখি, যারা সিস্টেম রিবুট ছাড়া জোরদারি করে একটি আটকে যাওয়া উইন্ডোজ সার্ভিস বা প্রসেস কিল করার অনুমতি দেয়।

Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা

সার্ভিস বন্ধ করার চেষ্টা করার ৩০ সেকেন্ডের মধ্যে যদি সেটি বন্ধ না হয়, তবে উইন্ডোজ এই মেসেজ দেখাবে:

Windows Could not stop the xxxxxx service on Local Computer
Error 1053: The service did not respond in a timely fashion.

Service Control Manager সার্ভিস শুরু বা বন্ধ হওয়ার জন্য যে টাইমআউট অপেক্ষা করে, সেটি ServicesPipeTimeout রেজিস্ট্রি প্যারামিটার ব্যবহার করে পরিবর্তন করা যায়। যদি সার্ভিস নির্দিষ্ট টাইমআউটের মধ্যে শুরু না হয়, তবে উইন্ডোজ Event Viewer-এ এরর পাঠায় (Event ID: 7000, 7009, 7011, a timeout was reached 30000 milliseconds)। এই টাইমআউট ৬০ সেকেন্ডে বেড়াতে পারেন, উদাহরণস্বরূপ:

reg add HKLM\SYSTEM\CurrentControlSet\Control /v ServicesPipeTimeout /t REG_SZ /d 600000 /f

এটি ভারী সার্ভিস শুরু/বন্ধ করার সময় কাজে লাগে যেগুলো সময়মতো সব প্রসেস টার্মিনেট এবং ফাইল ক্লোজ করতে পারে না (উদাহরণস্বরূপ, MS SQL Server)।

আপনি যদি কমান্ড প্রম্পট থেকে এমন একটি সার্ভিস বন্ধ করার চেষ্টা করেন: net stop wuauserv, তবে মেসেজ আসে:

The service is starting or stopping. Please try again later.

Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা

অথবা:

Windows could not stop the Service on Local Computer. [SC] ControlService Error 1061: The service cannot accept control messages at this time.

TaskKill ব্যবহার করে আটকে যাওয়া উইন্ডোজ সার্ভিস ফোর্সফুলি কিল করা

একটি আটকে যাওয়া সার্ভিস বন্ধ করার সবচেয়ে সহজ পথ হল বিল্ট-ইন taskkill কমান্ড-লাইন টুল ব্যবহার করা। সর্বপ্রথম, আপনাকে সার্ভিসের PID (প্রসেস আইডেন্টিফায়ার) বের করতে হবে। উদাহরণস্বরূপ, Windows Update সার্ভিস নিই। এর সিস্টেম নাম wuauserv (আপনি services.msc কনসোলে সার্ভিস প্রোপার্টিতে নাম চেক করতে পারেন)।

সার্ভার রিস্টার্ট করার সময় Windows Modules Installer সার্ভিস হ্যাং করে যাওয়া খুবই সাধারণ, বিশেষ করে উইন্ডোজ সার্ভার ২০১২ R2 এবং ২০১৬-এ আপডেট ইনস্টলের পর। গুরুত্বপূর্ণ. সতর্ক থাকুন। ক্রিটিক্যাল উইন্ডোজ সার্ভিস ফোর্সফুলি টার্মিনেট করলে BSOD বা অপ্রত্যাশিত সিস্টেম রিস্টার্ট হতে পারে।

এলিভেটেড কমান্ড প্রম্পটে এই কমান্ড চালান (এটি গুরুত্বপূর্ণ, নাহলে Access denied এরর আসবে):
sc queryex wuauserv
আমাদের কেসে wuauserv সার্ভিসের PID ৯১৮৬।
PID ৯১৮৬वाले আটকে যাওয়া প্রসেস ফোর্সফুলি কিল করতে কমান্ড:

taskkill /PID 9168 /F

Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা

SUCCESS: The process with PID 9168 has been terminated.

এই কমান্ড সার্ভিস প্রসেস ফোর্সফুলি টার্মিনেট করবে। এখন আপনি sc start servicename কমান্ড বা সার্ভিস ম্যানেজমেন্ট কনসোল দিয়ে সার্ভিস শুরু করতে পারেন।

আপনি ম্যানুয়ালি সার্ভিস প্রসেসের PID চেক না করেও আটকে যাওয়া সার্ভিস আরও ইলিগ্যান্টলি বন্ধ করতে পারেন। taskkill টুলে /FI অপশন আছে যা ফিল্টার ব্যবহার করে প্রয়োজনীয় সার্ভিস বা প্রসেস সিলেক্ট করতে দেয়। আপনি নির্দিষ্ট সার্ভিস কিল করতে পারেন কমান্ড দিয়ে:

taskkill /F /FI "SERVICES eq wuauserv"

অথবা সার্ভিসের নামও ছাড়া হ্যাং স্টেটवाले সব সার্ভিস কিল করতে পারেন:

taskkill /F /FI "status eq not responding"

এরপর Stopping স্ট্যাটাসে আটকে যাওয়া সার্ভিসটি বন্ধ হয়ে যাবে।

taskkill ইউটিলিটি ব্যবহার করে রিমোট কম্পিউটারে হ্যাং সার্ভিস ফোর্স স্টপ করা যাবে:

taskkill /S mun-fs01 /F /FI "SERVICES eq wuauserv"

PowerShell দিয়ে আটকে যাওয়া উইন্ডোজ সার্ভিস ফোর্স স্টপ করা

PowerShellও ব্যবহার করে সার্ভিস বাধ্য করে বন্ধ করা যায়। নিচের কমান্ড ব্যবহার করে Stopping স্টেটवाले সার্ভিসের তালিকা পাওয়া যায়:

Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}

অথবা Starting স্টেটवाले:

Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'start pending'}

Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা

Stop-Process কমান্ডলেট সমস্ত পাওয়া সার্ভিসের প্রসেস টার্মিনেট করতে দেয়। নিচের PowerShell স্ক্রিপ্টটি উইন্ডোজে সব আটকে যাওয়া সার্ভিস প্রসেস টার্মিনেট করবে:

$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message "Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}

Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা

নতুন PowerShell Core 6.x/7.x-এ Get-WmiObject এর বদলে Get-CimInstance ব্যবহার করতে হবে। স্ক্রিপ্টের প্রথম কমান্ড নিচের মতো করুন:

$Services = Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'

ResMon ব্যবহার করে হ্যাং সার্ভিসের Wait Chains বিশ্লেষণ করা

আপনি resmon.exe (Resource Monitor) ব্যবহার করে সার্ভিস হ্যাং করানোর কারণস্বরূপ প্রসেস চিহ্নিত করতে পারেন।

  1. Resource Monitor উইন্ডোতে CPU ট্যাবে যান এবং হ্যাং সার্ভিস প্রসেস খুঁজে বের করুন;
  2. কনটেক্সট মেনু থেকে Analyze Wait Chain আইটেম সিলেক্ট করুন; Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা
  3. নতুন উইন্ডোতে আপনি দেখবেন আপনার প্রসেস অন্য একটি প্রসেসের জন্য অপেক্ষা করছে। প্রসেসটি এন্ড করুন। আপনি যদি svchost.exe বা অন্য সিস্টেম প্রসেসের জন্য অপেক্ষা করছেন, তবে সেটি টার্মিনেট করতে হবে না। সেই প্রসেসের জন্য wait chain বিশ্লেষণ করুন। সেই PID খুঁজে বের করুন যেটির জন্য আপনার svchost.exe অপেক্ষা করছে এবং সেটি কিল করুন।

Process Explorer ব্যবহার করে হ্যাং সার্ভিস কিল করা

কিছু প্রসেস যেগুলো SYSTEM অ্যাকাউন্টের অধীনে চলে, সেগুলো লোকাল অ্যাডমিনিস্ট্রেটরও টার্মিনেট করতে পারে না। কারণ অ্যাডমিন অ্যাকাউন্টের কিছু প্রসেস বা সার্ভিসের ऊपर পারমিশন নেই। এমন একটি প্রসেস (সার্ভিস) বন্ধ করতে, আপনাকে সার্ভিস (প্রসেস) এর লোকাল Administrators গ্রুপের জন্য পারমিশন দিতে হবে এবং তারপর সেগুলো কিল করতে হবে। এর জন্য দুটি ছোট টুল লাগবে: psexec.exe এবং ProcessExplorer (মাইক্রোসফট ওয়েবসাইটে উপলব্ধ)।

  1. ProcessExplorer সিস্টেম প্রিভিলেজ দিয়ে শুরু করতে (runas SYSTEM), কমান্ড ব্যবহার করুন: PSExec -s -i ProcExp.exe
  2. Process Explorer প্রসেস লিস্টে আটকে যাওয়া সার্ভিস প্রসেস খুঁজে বের করুন এবং এর প্রোপার্টিজ খুলুন;
  3. Services ট্যাবে যান, আপনার সার্ভিস খুঁজে বের করুন এবং Permissions বাটনে ক্লিক করুন; Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা
  4. Administrators গ্রুপের জন্য সার্ভিস পারমিশনে Full Control রাইট দিন। পরিবর্তনগুলো সেভ করুন; Stopping বা Starting স্টেটে আটকে যাওয়া উইন্ডোজ সার্ভিস কিল করা
  5. এখন সার্ভিস প্রসেস বন্ধ করার চেষ্টা করুন। দয়া করে নোট করুন, সার্ভিসে পারমিশন অস্থায়ীভাবে দেওয়া হয়েছে যতক্ষণ না সেটি রিস্টার্ট হয়। সার্ভিসে পারম্যানেন্ট পারমিশন দিতে চাইলে "Set permissions on a Windows service" নিবন্ধটি ফলো করুন।
  1. উইন্ডোজ ১০-এ Bonjour Service বুঝুন: উদ্দেশ্য, কার্যকারিতা এবং নিরাপত্তা

  2. Windows 10-এ প্রসেস টার্মিনেট করার ৩টি প্রমাণিত পদ্ধতি

  3. Windows 11-এ সার্ভিস দ্রুত ও নিরাপদে সক্রিয় বা নিষ্ক্রিয় করুন

  4. উইন্ডোজ 10 সার্ভিস এরর ১০৫৩ সমাধান: অনুপস্থিত সার্ভিসের জন্য দ্রুত সমাধান