কীভাবে ম্যানুয়ালি উইন্ডোজ পরিষেবা প্রক্রিয়াটি মেরে ফেলবেন যা “Stopping
এ স্ট্যাক করা আছে ” বা “Starting
" অবস্থা? বেশিরভাগ উইন্ডোজ অ্যাডমিনিস্ট্রেটররা যখন একটি পরিষেবা শুরু/বন্ধ/পুনরায় চালু করার চেষ্টা করেন তখন একটি সমস্যার সম্মুখীন হন, কিন্তু এটি স্টপিং এর সাথে আটকে যায় (বা শুরু হচ্ছে ) অবস্থা। আপনি সার্ভিস ম্যানেজমেন্ট কনসোল (services.msc
থেকে এই পরিষেবাটি বন্ধ করতে পারবেন না ), যেহেতু এই পরিষেবার জন্য সমস্ত নিয়ন্ত্রণ বোতাম নিষ্ক্রিয় হয়ে গেছে (ধূসর হয়ে গেছে)। সবচেয়ে সহজ উপায় হল উইন্ডোজ পুনরায় চালু করা, তবে এটি সর্বদা গ্রহণযোগ্য নয়। আসুন বিকল্প উপায়গুলি দেখে নেওয়া যাক, যা সিস্টেম রিবুট ছাড়াই আটকে থাকা উইন্ডোজ পরিষেবা বা প্রক্রিয়াটিকে জোর করে হত্যা করতে দেয়।
যদি পরিষেবাটি বন্ধ করার চেষ্টা করার 30 সেকেন্ডের মধ্যে, এটি বন্ধ না হয়, উইন্ডোজ এই বার্তাটি প্রদর্শন করে:
Windows স্থানীয় কম্পিউটার ত্রুটি 1053-এ xxxxxx পরিষেবা বন্ধ করতে পারেনি:পরিষেবাটি সময়মত সাড়া দেয়নি৷পরিষেবা কন্ট্রোল ম্যানেজার পরিষেবা শুরু বা বন্ধ করার জন্য অপেক্ষা করার সময়সীমা ServicesPipeTimeout ব্যবহার করে পরিবর্তন করা যেতে পারে রেজিস্ট্রি প্যারামিটার। যদি নির্দিষ্ট সময়সীমার মধ্যে পরিষেবাটি শুরু না হয়, তাহলে Windows ইভেন্ট ভিউয়ারে একটি ত্রুটি পাঠায় (ইভেন্ট আইডি:7000, 7009, 7011, একটি সময়সীমা 30000 মিলিসেকেন্ডে পৌঁছেছিল ) আপনি এই সময়সীমাকে 60 সেকেন্ডে বাড়িয়ে দিতে পারেন, উদাহরণস্বরূপ:
reg add HKLM\SYSTEM\CurrentControlSet\Control /v ServicesPipeTimeout /t REG_SZ /d 600000 /f
ভারী পরিষেবাগুলি শুরু/বন্ধ করার সময় এটি কার্যকর হয় যেগুলির সমস্ত প্রক্রিয়া সঠিকভাবে বন্ধ করার এবং ফাইলগুলি বন্ধ করার জন্য যথেষ্ট সময় নেই (উদাহরণস্বরূপ, MS SQL সার্ভার)।
আপনি কমান্ড প্রম্পট থেকে এই ধরনের পরিষেবা বন্ধ করার চেষ্টা করলে:net stop wuauserv
, একটি বার্তা উপস্থিত হয়:
পরিষেবা শুরু বা বন্ধ হচ্ছে। অনুগ্রহ করে পরে আবার চেষ্টা করুন৷
অথবা:
Windows স্থানীয় কম্পিউটারে পরিষেবা বন্ধ করতে পারেনি।[SC] ControlService Error 1061:পরিষেবাটি এই সময়ে নিয়ন্ত্রণ বার্তা গ্রহণ করতে পারে না৷বিষয়বস্তু:
- টাস্ককিল ব্যবহার করে আটকে থাকা উইন্ডোজ সার্ভিসকে কীভাবে জোর করে হত্যা করবেন?
- PowerShell-এর সাথে আটকে থাকা Windows পরিষেবাকে জোর করে বন্ধ করুন
- ResMon ব্যবহার করে হ্যাং সার্ভিসে ওয়েট চেইন বিশ্লেষণ করা হচ্ছে
- প্রসেস এক্সপ্লোরার ব্যবহার করে একটি হ্যাং সার্ভিসকে হত্যা করা
টাস্ককিল ব্যবহার করে আটকে থাকা উইন্ডোজ সার্ভিসকে কীভাবে জোর করে হত্যা করবেন?
আটকে থাকা পরিষেবা বন্ধ করার সবচেয়ে সহজ উপায় হল বিল্ট-ইন টাস্ককিল ব্যবহার করা কমান্ড লাইন টুল। প্রথমত, আপনাকে PID খুঁজে বের করতে হবে (প্রক্রিয়া শনাক্তকারী) পরিষেবার। উদাহরণ হিসাবে, আসুন উইন্ডোজ আপডেট পরিষেবাটি নেওয়া যাক। এর সিস্টেমের নাম হল wuauserv
(আপনি services.msc
-এ পরিষেবার বৈশিষ্ট্যগুলিতে নাম পরীক্ষা করতে পারেন কনসোল)।
এলিভেটেড কমান্ড প্রম্পটে এই কমান্ডটি চালান (এটি গুরুত্বপূর্ণ, অথবা অ্যাক্সেস অস্বীকার করা ত্রুটি প্রদর্শিত হবে):sc queryex wuauserv
আমাদের ক্ষেত্রে, wuauserv পরিষেবার PID হল 9186৷
PID 9186 দিয়ে আটকে থাকা প্রক্রিয়াটিকে জোর করে মেরে ফেলতে, কমান্ডটি চালান:
taskkill /PID 9168 /F
সাফল্য:PID 9168 এর সাথে প্রক্রিয়াটি বন্ধ করা হয়েছে।
এই কমান্ড জোরপূর্বক পরিষেবা প্রক্রিয়া বন্ধ করবে। এখন আপনি sc start servicename
দিয়ে পরিষেবাটি শুরু করতে পারেন৷ কমান্ড অথবা সার্ভিস ম্যানেজমেন্ট কনসোলের মাধ্যমে
আপনি পরিষেবা প্রক্রিয়ার পিআইডি ম্যানুয়ালি চেক না করে আরও মার্জিতভাবে একটি হ্যাং পরিষেবা বন্ধ করতে পারেন। টাস্ককিল টুলটিতে /FI আছে বিকল্প, যা আপনাকে প্রয়োজনীয় পরিষেবা বা প্রক্রিয়া নির্বাচন করতে একটি ফিল্টার ব্যবহার করতে দেয়। আপনি কমান্ড দিয়ে একটি নির্দিষ্ট পরিষেবাকে হত্যা করতে পারেন:
taskkill /F /FI "SERVICES eq wuauserv"
অথবা আপনি পরিষেবার নামটি একেবারেই এড়িয়ে যেতে পারেন এবং কমান্ডের সাহায্যে সমস্ত পরিষেবা স্তব্ধ অবস্থায় মেরে ফেলতে পারেন:
taskkill /F /FI "status eq not responding"
এর পরে, স্টপিং স্ট্যাটাসে স্ট্যাক করা পরিষেবাটি বন্ধ হওয়া উচিত।
আপনি একটি দূরবর্তী কম্পিউটারে হ্যাং পরিষেবাগুলি বন্ধ করার জন্য টাস্ককিল ইউটিলিটি ব্যবহার করতে পারেন:
taskkill /S mun-fs01 /F /FI "SERVICES eq wuauserv"
PowerShell এর সাথে আটকে থাকা উইন্ডোজ পরিষেবাকে জোর করে বন্ধ করুন
আপনি পরিষেবা বন্ধ করতে বাধ্য করতে PowerShell ব্যবহার করতে পারেন। নিম্নলিখিত কমান্ডটি ব্যবহার করে, আপনি স্টপিং অবস্থায় পরিষেবাগুলির একটি তালিকা পেতে পারেন:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}
অথবা প্রারম্ভিক অবস্থায়:
Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'start pending'}
স্টপ-প্রক্রিয়া cmdlet সমস্ত পাওয়া পরিষেবার প্রক্রিয়া বন্ধ করার অনুমতি দেয়। নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি উইন্ডোজের সমস্ত আটকে থাকা পরিষেবা প্রক্রিয়াগুলিকে শেষ করবে:
$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"
}
Get-CimInstance
ব্যবহার করতে হবে পরিবর্তে Get-WmiObject
নতুন পাওয়ারশেল কোর 6.x/7.x-এ cmdlet। স্ক্রিপ্টের প্রথম কমান্ডটি এর সাথে প্রতিস্থাপন করুন:
$Services = Get-CimInstance -Class win32_service | where-Object state -eq 'stop pending'
ResMon ব্যবহার করে হ্যাং সার্ভিসে ওয়েট চেইন বিশ্লেষণ করা
আপনি resmon.exe ব্যবহার করে সেই প্রক্রিয়াটি সনাক্ত করতে পারেন যার কারণে পরিষেবাটি হ্যাং হয়েছে৷ (রিসোর্স মনিটর)।
- রিসোর্স মনিটর উইন্ডোতে, CPU ট্যাবে যান এবং হ্যাং পরিষেবা প্রক্রিয়াটি খুঁজুন;
- আইটেমটি নির্বাচন করুন অপেক্ষা চেইন বিশ্লেষণ করুন প্রসঙ্গ মেনু থেকে;
- নতুন উইন্ডোতে, আপনি সম্ভবত দেখতে পাবেন যে আপনার প্রক্রিয়াটি অন্য প্রক্রিয়ার জন্য অপেক্ষা করছে। প্রক্রিয়াটি শেষ করুন। আপনি যদি svchost.exe বা অন্য সিস্টেম প্রক্রিয়ার জন্য অপেক্ষা করছেন, তাহলে আপনাকে এটি বন্ধ করার দরকার নেই। এই প্রক্রিয়ার জন্য অপেক্ষার চেইন বিশ্লেষণ করার চেষ্টা করুন। আপনার svchost.exe যে প্রক্রিয়াটির জন্য অপেক্ষা করছে তার পিআইডি খুঁজুন এবং এটিকে মেরে ফেলুন।
প্রসেস এক্সপ্লোরার ব্যবহার করে একটি হ্যাং সার্ভিসকে হত্যা করা
এমনকি স্থানীয় প্রশাসক সিস্টেম অ্যাকাউন্টের অধীনে চলা কিছু প্রক্রিয়া বন্ধ করতে পারে না। আসল বিষয়টি হ'ল অ্যাডমিন অ্যাকাউন্টের কিছু প্রক্রিয়া বা পরিষেবার অনুমতি নেই। এই ধরনের একটি প্রক্রিয়া (পরিষেবা) বন্ধ করার জন্য, আপনাকে স্থানীয় প্রশাসক গোষ্ঠীকে পরিষেবার (প্রক্রিয়া) অনুমতি দিতে হবে এবং তারপরে তাদের হত্যা করতে হবে। এটি করার জন্য, আমাদের দুটি ছোট সরঞ্জামের প্রয়োজন হবে:psexec.exe এবং প্রসেসএক্সপ্লোরার (Microsoft ওয়েবসাইটে উপলব্ধ)।
- সিস্টেম বিশেষাধিকার (runas SYSTEM) সহ ProcessExplorer শুরু করতে, কমান্ডটি ব্যবহার করুন:
PSExec -s -i ProcExp.exe
- প্রসেস এক্সপ্লোরার প্রক্রিয়া তালিকায়, আটকে থাকা পরিষেবা প্রক্রিয়াটি খুঁজুন এবং এর বৈশিষ্ট্যগুলি খুলুন;
- পরিষেবাগুলিতে যান৷ ট্যাবে, আপনার পরিষেবা খুঁজুন এবং অনুমতি ক্লিক করুন বোতাম;
- প্রশাসকদের পরিষেবার অনুমতিগুলিতে সম্পূর্ণ নিয়ন্ত্রণ মঞ্জুর করুন গ্রুপ পরিবর্তনগুলি সংরক্ষণ করুন;
- এখন পরিষেবা প্রক্রিয়াটি বন্ধ করার চেষ্টা করুন৷ অনুগ্রহ করে মনে রাখবেন যে পরিষেবাটি পুনরায় চালু না হওয়া পর্যন্ত অস্থায়ীভাবে অনুমতি দেওয়া হয়৷ পরিষেবাতে স্থায়ী অনুমতি দেওয়ার জন্য একটি Windows পরিষেবাতে অনুমতি সেট করুন নিবন্ধটি অনুসরণ করুন৷ ৷