using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
namespace auto_services
{
class Program
{
class APP
{
//start_serv returns
//return 1 work start
//return 0 work fault
public static int start_serv(string m_ServiceName)
{
try
{
// 建立 ServiceController 物件實體
ServiceController service = new ServiceController(m_ServiceName);
// 設定一個 Timeout 時間,若超過 30 秒啟動不成功就宣告失敗!
TimeSpan timeout = TimeSpan.FromMilliseconds(1000 * 30);
// 啟動服務
service.Start();
// 設定該服務必須在等待 timeout 時間內將狀態改變至「已啟動(Running)」的狀態
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
return 0;
}
return 1;
}
//status_serv returns
//return 1 work
//return 0 stop
public static int status_serv(string m_ServiceName)
{
// 建立 ServiceController 物件實體
ServiceController service = new ServiceController(m_ServiceName);
if (service.Status != ServiceControllerStatus.Stopped && service.Status != ServiceControllerStatus.StopPending)
return 1;
else
return 0;
}
public static void run_serv(string m_ServiceName)
{
if (APP.status_serv(m_ServiceName) == 0)
{
int i = APP.start_serv(m_ServiceName);
if (i == 1)
Console.WriteLine(m_ServiceName + "服務成功啟動!");
else
Console.WriteLine(m_ServiceName + "服務無法啟動,請檢查相關設定!");
}
else
{
Console.WriteLine(m_ServiceName + "服務已啟動!");
}
}
}
static void Main(string[] args)
{
// 已知的 Service Name
string m_ServiceName = "MSSQL";
//檢查並執行
APP.run_serv(m_ServiceName);
}
}
}
2010年10月6日 星期三
檢查service是否執行
檢查service是否執行,如未執行則執行之
程式碼參考以下網站
http://blog.miniasp.com/post/2009/04/Windows-Service-Start-Stop-Restart-in-CSharp.aspx
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言