Linux'taki hizmetler, sisteminiz açılır açılmaz veya yeniden başlatılır başlatılmaz başlar. Linux PC'nizde otomatik başlayan bir systemd hizmetini nasıl oluşturabileceğiniz aşağıda açıklanmıştır.

systemd, birçok iyi bilinen Linux dağıtımının hizmet yöneticisidir. Hizmet, genellikle arka planda çalışan bir programın birimidir. Hizmetler, doğası gereği, sistem açılır açılmaz otomatik olarak başlar ve gözetimsiz çalışabilir.

Sisteminizi her başlattığınızda veya yeniden başlattığınızda yürütülen otomatik başlayan bir görev veya program oluşturmanız gerekirse, yeni bir hizmet oluşturmayı düşünebilirsiniz. Linux'ta yeni, özel bir systemd hizmetinin nasıl oluşturulacağını öğrenelim.

1. Adım: Hizmet Dosyasını Oluşturma

Yeni bir systemd hizmet dosyası oluşturmak için gereken birkaç adım vardır. Bunlardan ilki servis için birim dosyasının oluşturulmasıdır. Bir hizmet dosyası oluşturmadan önce yapısını anlamanız gerekir.

Linux sisteminizden gerçek, çalışan bir hizmet dosyası çekerek hizmet dosyasını inceleyelim. Aşağıda, vmtools daemon servisi için servis dosyasını görebilirsiniz.

Bu belirli hizmet, VMware araçları yüklü olan VMware üzerinde Linux çalıştırmadığınız sürece sisteminizde bulunmayabilir. Söz konusu hizmet önemli değildir çünkü tüm hizmetler veya daha doğrusu hizmet birim dosyaları aynı temel yapıya sahiptir ve gerektiği gibi bazı özelleştirmeler yapılır.

Tüm systemd hizmet dosyalarının üç bölümü olmalıdır: [Hizmet], [Birim], Ve [Düzenlemek]ve her bölümün altında birkaç parametre. Her bölümün içeriği ve neden önemli olduğu aşağıda açıklanmıştır:

1. Birim

bu Birim bölümü, hizmetin açıklaması ve bağımlılıkları gibi önemli meta verileri içerir. Üç parametresi vardır: Tanım, Önce, Ve Sonrasında. Aynı şekilde öne sürdüğü gibi, Tanım parametresi, hizmetin bağlamını ve ne yaptığını sağlar.

bu Önce Ve Sonrasında parametreler, hizmetin yürütülmesi için karşılanması gereken koşulları tanımlar. Örneğin, bir web sunucusu hizmeti başlatıyorsanız, bunun yalnızca ağ hizmeti çevrimiçi olduktan sonra başlamasını istersiniz. Böylece değerini ayarlarsınız Sonrasında ağ hizmetine parametre.

2. Hizmet

bu Hizmet bölüm iki zorunlu parametre içerir: ExecStart, Tipve diğer birkaç isteğe bağlı parametre gibi ExecYeniden Yükle, ve dahası.

ExecStart hizmet başladığında yürütülecek komutu tanımlarken, Tip parametre, oluşturulacak işlemin türünü belirler.

3. Düzenlemek

Bu bölüm ve verileri, hizmeti şu şekilde etkinleştirdiğinizde veya devre dışı bıraktığınızda çağrılır: systemctl komutu.

Birkaç parametresi var. Yaygın ve gerekli olanlardan biri Aranıyor. bu Aranıyor parametresi, hizmet etkinleştirildiğinde başlaması gereken hedef birimleri tanımlar. varsayılan değer çok kullanıcılı.hedef.

Burada belirtilen parametreler, bir birim dosyasında ayarlayabileceğiniz yegane parametreler değildir. Parametrelerin tam listesini şu adresten alabilirsiniz: resmi systemd.exec belgeleri veya yazarak man systemd.exec bir terminalde.

Bir systemd hizmet birimi dosyası her zaman " ile biter..hizmet" uzantısı ve içinde saklanmalıdır /etc/systemd/system/ dizin. hizmet dosyasını oluşturun dokunma komutunu kullanma ile önüne ekleyerek yükseltilmiş ayrıcalıklarla sudo emretmek:

sudo touch /etc/systemd/system/.hizmet 

Artık hizmet dosyasını oluşturduğunuza göre, hizmeti geçerli ve çalışır hale getirmek için onu gerekli sözdizimiyle doldurmaya başlayalım.

2. Adım: Hizmet Dosyasını Yapılandırma

Gösterim için, yürüten örnek bir hizmet oluşturacaksınız. Makinenizdeki bağlantı noktalarını taramak için Nmap ve çıktıyı her otuz saniyede bir dosyada saklayın. Bu görevi gerçekleştirmek için hizmet birimi dosyasını şu şekilde yapılandırabilirsiniz:

[Birim]
Description=Özel nmap hizmetinin gösterimi.
Sonra=ağ.hedef

[Hizmet]
Yazım=basit
kullanıcı=kök
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt yerel ana bilgisayar
Yeniden başlat=her zaman
Yeniden Başlat Sn=30

[Düzenlemek]
WantedBy=çok kullanıcılı.hedef

Burada belirtilen parametreler daha önce açıklanmış olsa da, bunların yeni oluşturulan hizmetimizi nasıl etkilediklerine bakalım ve ayrıca bu ünitede tanıtılan yenileri keşfedelim: Tekrar başlat, Yeniden BaşlatSec, Ve kullanıcı.

Her bölümdeki parametrelerin anlamı şu şekildedir:

  • Tanım: Hizmetin işlevlerini açıklayan, insanlar tarafından okunabilen metin.
  • After=network.target: Bu hizmetin bağlı olduğu systemd'ye dikte etme ağ.hedef ve yalnızca şu andan sonra başlamalıdır: ağ.hedef hizmete başlanmıştır. Dikkat Sonrasında herhangi bir doğrudan bağımlılık ilişkisi kurmak için kullanılmaz, sadece bir tetikleyici görevi görür.
  • Tür=basit: Birden çok hizmet türü vardır. Ancak, bu gösterideki hizmet düzenli bir süreçtir ve bu nedenle öyle olduğunu beyan ederiz. Bunun için tüm farklı değerleri, daha önce bağlantısı verilen resmi dokümantasyon sayfasında bulabilirsiniz.
  • Yeniden başlat=her zaman: Bu, hizmetin her çıkışında her zaman yeniden başlatılması gerektiği anlamına gelir.
  • Yeniden BaşlatSec=30: Bu, hizmetin her başlatılması arasındaki aralığı 30 saniyeye ayarlar.
  • kullanıcı=kök: Bu, hizmetin kök kullanıcı olarak çalışacağını tanımlar. Bu durumda, Nmap kök ayrıcalıkları olmadan çalışamayacağı için bu yapılması gereken bir adımdır.
  • YürütmeBaşlangıcı: Bu yönerge, yürütülecek programın mutlak yolunu, programın düzgün çalışması için gerekli tüm gerekli bayraklar veya bağımsız değişkenlerle birlikte tutar.
  • WantedBy=çok kullanıcılı.hedef: Bir hizmet dosyasındaki bu parametre, hangi hedefin hizmeti içermesi gerektiğini veya hizmeti "istediğini" belirtir. Bir hizmetin bir hedefe dahil edilmesi, önyükleme işlemi sırasında sistem o hedefe ulaştığında hizmetin başlaması gerektiği anlamına gelir. Bu durumda hizmet, sistem çoklu kullanıcı moduna girdiğinde başlamalıdır. Çoklu kullanıcı modu, sistemin tamamen önyüklendiği bir durumdur ve birden fazla kullanıcının oturum açmasına ve sistemi kullanmasına izin verir.

3. Adım: Hizmeti Etkinleştirme ve Başlatma

Artık birim dosyasını oluşturduğunuza göre, hizmetinizi etkinleştirmek için geriye kalan tek adım onu ​​etkinleştirmek ve çalıştırmaktır. systemctl komutunu kullanarak hizmetinizi etkinleştirebilir ve başlatabilirsiniz.

Hizmetinizin durumunu etkinleştirmek, başlatmak ve kontrol etmek için systemctl'yi nasıl kullanacağınız aşağıda açıklanmıştır:

sudo systemctl etkinleştir .hizmet
sudo systemctl başlat .hizmet
sudo systemctl durumu .hizmet

Şimdi, özel hizmetiniz çalışır durumda olmalıdır! Bu durumda, her otuz saniyede bir çalışan bir Nmap taraması görmelisiniz ve çıktı, sonuçlar.txt ana dizindeki dosya.

Linux'ta sistemd Hizmeti Kurmak Çok Kolay!

Sıfırdan özel bir hizmet kurmak ilk bakışta göz korkutucu görünse de, bu hizmeti ayarlamanın oldukça kolay bir yoludur. sizin için tekrarlayan görevleri yürütmek ve performansınızı artırmak için kendi kendine çalışan, katılımsız bir süreç oluşturun. verimlilik.

Demo hizmette, bir hizmeti nasıl yapılandırabileceğinizi ve kurabileceğinizi ancak yüzeysel olarak çizdik. Hizmetinizi nasıl özelleştirebileceğinizle ilgili her şeyi öğrenmek için, notta bağlantısı verilen resmi belgeleri incelemeniz önerilir.

Bir hizmeti kurmak ve sürdürmek size çok büyük bir görev gibi geliyorsa, Linux'ta tekrar eden görevleri otomatikleştirmenin alternatif bir yolunu incelemeyi düşünün.