উইন্ডোজ পরিষেবা ক্রাশ হয়ে গেলে আমি কীভাবে স্বয়ংক্রিয়ভাবে পুনরায় চালু করতে পারি?


57

আমার একটি উইন্ডোজ পরিষেবা রয়েছে যা প্রতি কয়েক দিন অপ্রত্যাশিতভাবে প্রস্থান করে। ক্রাশ হলে এটি পুনরায় আরম্ভ হবে তা নিশ্চিত করার জন্য এটি নিরীক্ষণের কোন সহজ উপায় আছে?

উত্তর:


77

পরিষেবাদি অ্যাপ্লিকেশন এর অধীনে, প্রশ্নযুক্ত পরিষেবার বৈশিষ্ট্য নির্বাচন করুন।

পুনরুদ্ধার ট্যাবটি দেখুন - এখানে সমস্ত ধরণের বিকল্প রয়েছে - আমি পরিষেবাটি পুনরায় চালু করতে প্রথম এবং দ্বিতীয় ব্যর্থতা সেট করেছিলাম , তৃতীয় ব্যর্থতার বিজ্ঞপ্তি সহ ব্লেট একটি ইমেল বের করে এমন একটি ব্যাচ প্রোগ্রাম চালানোর জন্য তৃতীয়।

প্রতিদিন ব্যর্থ গণনা পুনরায় সেট করতে আপনার রিসেট ব্যর্থ গণনাটি 1 এ সেট করা উচিত।

সম্পাদনা করুন:

দেখে মনে হচ্ছে আপনি কোনও কমান্ড লাইনের মাধ্যমে এটি করতে পারেন:

SC failure w3svc reset= 432000  actions= restart/30000/restart/60000/run/60000
SC failure w3svc command= "MyBatchFile.cmd"

আপনার MyBatchFile.CMD ফাইলটি দেখতে দেখতে এটি দেখতে পারে:

blat - -body "Service W3svc Failed" -subject "SERVICE ERROR" -to Notify@Example.com -server SMTP.Example.com -f Administrator@Example.com

3
সমস্ত ভাল স্টাফ, তবে বিশেষত ইমেল বিজ্ঞপ্তি পরামর্শ এবং কমান্ড-লাইন স্টাফের জন্য +1।
ম্যাক্সিমাস মিনিমাস

ব্যাচের ফাইলটি ডিস্কে কোথায় থাকা উচিত?
ম্যাট

কোথাও। সঙ্গে SC failure w3svc command= "MyBatchFile.cmd"\ উইন্ডোজ \ সিস্টেম 32: এটা পাথ অথবা সি হওয়া উচিত। আপনি যদি কোনও পুরো পথ ব্যবহার করেন তবে এটি কোনও ডিরেক্টরিতে রাখতে পারেন যেমনSC failure w3svc command= "c:\Stuff\MyBatchFile.cmd"
ক্রিস্টোফার_জি_লুইস

9

Services.msc খুলুন, পরিষেবার বৈশিষ্ট্যগুলি খোলার জন্য পরিষেবাটিতে ডাবল ক্লিক করুন, একটি পুনরুদ্ধার ট্যাব রয়েছে এবং সেই সেটিংসে আপনাকে ব্যর্থতার পরে পরিষেবাটি পুনরায় চালু করার অনুমতি দেওয়া উচিত।


4

পুনরুদ্ধারের সময়টি শূন্যে সেট করার চেষ্টা করুন:

এখানে চিত্র বর্ণনা লিখুন

কমান্ড লাইন সমতুল্য:

SC failure YOUR_SERVICE_NAME reset= 0 actions= restart/0/restart/0/restart/0

যাইহোক কখনও কখনও অটো রিকভারি সঠিকভাবে কাজ করে না এবং এটি তৃতীয় পক্ষের সফ্টওয়্যার ব্যবহার করার পরামর্শ দেয়। মনে হয় 0 টি উইন্ডোজের প্রস্থান কোডের সাথে পরিষেবাটি প্রফুল্লভাবে প্রস্থান করলে এটি পুনরুদ্ধার করার চেষ্টা করবেন না।


1

আমি ব্যবহার করছি ServiceKeeper HostForLife.eu আমার Windows এ 2008 সার্ভার এবং এটা খুব ভালো কাজ করে। পূর্বে, সার্ভিস হককে নিয়ে আমার একটি পর্যালোচনা ছিল, তবে আমি সার্ভিসকিপারটিকে তার সহজ পরিচালনা এবং ইন্টারফেসের জন্য ব্যবহার করতে পছন্দ করি।


1

বন্ধ করা থাকলে পরিষেবা শুরু করার জন্য আমার একই রকম প্রয়োজন ছিল। সবচেয়ে সহজ সমাধানটি আমি ভেবেছিলাম উইন্ডোজ টাস্ক শিডিয়ুলারে প্রতি 5 মিনিটে নীচের কমান্ডটি কার্যকর করা:

নেট শুরু মাই সার্ভিসনাম

এই কমান্ডটি মূলত পরিষেবাটি শুরু করবে (বন্ধ করা থাকলে) এবং পরিষেবাটি ইতিমধ্যে চালু থাকলে কোনও প্রভাব ফেলবে না।


1

আমি সম্প্রতি একটি পাওয়ারশেল স্ক্রিপ্ট চালানোর জন্য একটি পুনরুদ্ধার বিকল্প প্রয়োগ করেছি যা সংজ্ঞায়িত সংখ্যক পরিষেবাটি পুনঃসূচনা করার চেষ্টা করে এবং উপসংহারে একটি ইমেল বিজ্ঞপ্তি প্রেরণ করে, এটিও।

বেশ কয়েকটি চেষ্টার পরেও (এবং অন্যান্য যে সমস্ত জিনিস আমি দেখেছি তার পরেও) পরিষেবাগুলিতে পুনরুদ্ধার ট্যাবে ক্ষেত্রগুলির কনফিগারেশনটি নিম্নরূপ:

প্রোগ্রাম: পাওয়ারসেল.এক্সই
** সি নয়: উইন্ডোজ \ সিস্টেম 32 \ উইন্ডোজপাওয়ারশেল \ v1.0 \ পাওয়ারসেল.এক্সই

কমান্ড লাইন প্যারামিটারগুলি: -কম্যান্ড "& {সোমপথ \ ইয়োরস্ক্রিপ্ট.পিএস 1 '$ আর্টস [0]' '$ আরগস [1]' '$ আরগস [এন]'}"

উদাহরণস্বরূপ: -কম্যান্ড "এবং {সি: \ পাওয়ারশেল স্ক্রিপ্টস R পরিষেবাদি পুনরুদ্ধার.পিএস 1 'পরিষেবার নাম'}"

** gs টি আর্গগুলি এমন প্যারামিটার যা আপনার স্ক্রিপ্টে পাঠানো হবে। এগুলি প্রয়োজন হয় না।

এখানে পাওয়ারশেল লিপিটি রয়েছে:

cd $PSScriptRoot

$n = $args[0]

function CreateLogFile {
$events = Get-EventLog -LogName Application -Source SomeSource -Newest 40
if (!(Test-Path "c:\temp")) {
    New-Item -Path "c:\temp" -Type directory}
if (!(Test-Path "c:\temp\ServicesLogs.txt")) {
    New-Item -Path "c:\temp" -Type File -Name "ServicesLogs.txt"}
    $events | Out-File -width 600 c:\temp\ServicesLogs.txt
}

function SendEmail  {
$EmailServer = "SMTP Server"
$ToAddress = "Name@domain.com"
$FromAddress = "Name@domain.com"

CreateLogFile

$Retrycount = $Retrycount + 1
send-mailmessage -SmtpServer $EmailServer -Priority High -To $ToAddress -From $FromAddress -Subject "$n Service failure" `
-Body "The $n service on server $env:COMPUTERNAME has stopped and was unable to be restarted after $Retrycount attempts." -Attachments c:\temp\ServicesLogs.txt

Remove-Item "c:\temp\ServicesLogs.txt"
}

function SendEmailFail  {
$EmailServer = "SMTP Server"
$ToAddress = "Name@domain.com"
$FromAddress = "Name@domain.com"

CreateLogFile

$Retrycount = $Retrycount + 1
send-mailmessage -SmtpServer $EmailServer -Priority High -To $ToAddress -From $FromAddress -Subject "$n Service Restarted" `
-Body "The $n service on server $env:COMPUTERNAME stopped and was successfully restarted after $Retrycount attempts. The relevant system logs are attached." -Attachments c:\temp\ServicesLogs.txt

Remove-Item "c:\temp\ServicesLogs.txt"
}

function StartService {

$Stoploop = $false

do {
   if ($Retrycount -gt 3){
     $Stoploop = $true
     SendEmail
     Break
    }

   $i =  Get-WmiObject win32_service | ?{$_.Name -imatch $n} | select Name, State, StartMode
    if ($i.State -ne "Running" -and $i.StartMode -ne "Disabled") {

        sc.exe start $n
        Start-Sleep -Seconds 35

        $i =  Get-WmiObject win32_service | ?{$_.Name -imatch $n} | select State
          if ($i.state -eq "Running"){
              $Stoploop = $true
              SendEmailFail}
          else {$Retrycount = $Retrycount + 1}
    }        
}
While ($Stoploop -eq $false)
}

[int]$Retrycount = "0"
StartService

0

এই অনুরূপ আমার উত্তর ছিল থ্রেড এই সাহায্য আশা ...

আপনি প্রয়োজনে কম্পিউটারে পরিষেবা সময়ে সময়ে চালু করার জন্য এই জাতীয় একটি সহজ ভিবিএস স্ক্রিপ্ট শিডিউল করতে পারেন।

strComputer = "।" 
strSvcName = "YOUR_SERVICE_NAME" 
সেট আপজেডব্লিউএমআই = গেটোবজেক্ট ("উইনমিটিস: \\" & স্ট্রোক কম্পিউটার এবং "\ রুট \ সিএমভি 2")
সেট আপজেসেসওয়ার্স =জেজডব্লিউএমআই.গেট ("উইন 32_সোভারসী.নাম = '" & #SvcName এবং "" ")
যদি objService.State = তবে "থামানো" Then
    objService.StartService ()
যদি শেষ



0

কেউ সুপার ব্যবহারকারীতে অনুরূপ প্রশ্ন জিজ্ঞাসা করেছেন: আপনি উইন্ডোজ পরিষেবাগুলি নিরীক্ষণ করে এমন একটি সরঞ্জাম ইনস্টল করতে পারেন। সার্ভিস হকের মতো কিছু আপনাকে পরিষেবাগুলি চালিয়ে যেতে সহায়তা করবে বা পরিষেবাটি সুচারুভাবে চলতে রাখতে আপনাকে স্বয়ংক্রিয় পুনঃসূচনাগুলি (সম্ভবত রাতের বেলাতে) সময় নির্ধারণের অনুমতি দেবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.