Home » c# » c# Servis Kontrolü

c# Servis Kontrolü

Merhaba Arkadaşlar Bugün Servisleri Okuma ve Kontrol Etme İşlemlerini Göstereceğiz.

Öncelikle Projemize TOOLBOX ı Açıp ServiceController Ekliyoruz.
Daha Sonra Using Kısmına ;

using System.ServiceProcess;   Eklemeliyiz..

Lokal makinadaki bir service’in durumunu belirleme
Lokal makinadaki bir service’in durumunu belirlemek için, öncelikle ServiceController sınıfından yeni bir örnek oluşturmamız lazım.

Sordulamak istediğimiz windows servis’i ile değişkenimizi ilişkilendirmek için kullanabileceğimiz üç yöntem var.

  • ServiceName özelliği
  • DisplayName özelliği
  • ServiceController constructor‘ı

Örnek olarak Print Spooler servisini sorgulamak için;

ServiceController ServiceByServiceName = new ServiceController();
ServiceByServiceName.ServiceName = "Spooler";

ServiceController ServiceByDisplayName = new ServiceController();
ServiceByDisplayName.DisplayName = "Print Spooler";

ServiceController ServiceByConstructor = new ServiceController("Spooler");

Yukarıdaki kodda görebileceğiniz gibi ServiceController sınıfımızı tanımladıktan sonra, Status özelliğini kullanarak, servis’in durum bilgisini sorgulayabiliriz.

Status özelliği ServiceControllerStatus enum tipinde değer döndürür;

  • ContinuePending: Servis durdurulmuş ve başlatılıyor
  • Paused: Servis durdurulmuş
  • PausePending: Servis durduruluyor
  • Running: Servis çalışıyor
  • StartPending: Servis başlatılıyor
  • Stopped: Servis çalışmıyor
  • StopPending: Servis durduruluyor

Servis’in çalıştığı durumu kontrol etmek için kodumuzu aşağıdaki gibi yazabiliriz;

ServiceController sc = new ServiceController("Spooler");

if (sc.Status == ServiceControllerStatus.Running)
{
	MessageBox.Show("Servis çalışıyor");
}

Not: Servis durumunu sorgulayan uygulamayı çalıştıran kullanıcının yeterli yetkisi bulunmalıdır. Aksi taktirde bir hata fırlatılacaktır.

Uzak makinadaki bir service’in durumunu belirleme

Uzak makinadaki bir service’in durumunu belirleme, lokal makinadaki service’in durumunu belirlemek kadar kolaydır. Tek yapmamız gereken MachineName özelliğine uzak makinanın adresini girmek.

Uzak makinadaki Print Spooler servisini sorgulamak istediğimizde;

ServiceController sc = new ServiceController("Spooler", "UzakSunucu");

if (sc.Status == ServiceControllerStatus.Running)
{
	MessageBox.Show("Servis çalışıyor");
}
Not : Spooler yerine Birçok Servis Var İstediğinizi Kontrol Edebilirsiniz.
O An Bilgisayarınızdaki Yüklü Servisleri Görmek İçin Toolbox dan eklediğiniz servicecontrollerinizin
propertiesinde servicename yazıyor,oradan bakabilirsiniz

Not : Servisi Başlatmak İçin     sc.start();    sc.stop(); komutlarını kullanabilirsiniz 🙂

Hakkında Yunus emre Kula

BSıradan Biri İşte..

2 comments

  1. Oldukça başarılı bir anlatım yapmışsınız tebrik ederim güzel makalen için.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Powered by yunusemrekula.com