首页 > 解决方案 > 使用 powershell 脚本重新启动 apache tomcat 服务

问题描述

我正在使用 powershell 脚本进行自动化,如果它出现故障,它会自动启动 apache tomcat 服务。但是代码没有按预期工作。请在下面找到代码:

$serviceName = "AGTtomcat7w"
$serviceNamePath = "D:/Pipeline_AGT/apache-tomcat-7.0.82/bin/startup.bat"

$service = Get-Service | Where-Object { $_.Name -eq $serviceName }
write-host "Service Status is" $service.status

if ($service.status -eq "Running") {
   $smtpServer = "161.99.65.10"
   $msg = new-object Net.Mail.MailMessage
   $smtp = new-object Net.Mail.SmtpClient($smtpServer)

   $dateString = get-date

   $msg.From = "noreply@example.com"
   $msg.To.Add("abc@xyz.com")
   $msg.subject = "Web services Monitoring"
   $msg.body = ([string]$dateString) + " AGT Maxavera Service" + " is " + $service.status 
   $smtp.send($msg)
}

else {
   write-host "Sending waring email"

   $smtpServer = "161.99.65.10"
   $msg = new-object Net.Mail.MailMessage
   $smtp = new-object Net.Mail.SmtpClient($smtpServer)

   $dateString = get-date

   $msg.From = "noreply@example.com"
   $msg.To.Add("abc@xyz.com")
   $msg.subject = "Service " + $service + " is " + $service.status
   $msg.body = ([string]$dateString) + " AGT Maxavera Service " + " is " + $service.status 
   $smtp.send($msg)

   #Starting the service   
   Restart-Service $serviceNamePath -force

}

有人能帮帮我吗

标签: powershell

解决方案


尝试将 $serviceNamePath 更改为 $serviceName。Restart-Service 需要它应该重新启动的服务的名称,而不是文件路径。

Restart-Service $serviceNamePath -force

Restart-Service $serviceName -force

推荐阅读