LINUXDA SERVİCE YAZMAK- OLUŞTURMAK
Hata durumlarından sonra, sistemin kapanıp açılması durumunda sorun
yaşamamak ya da bu dosya çalıştıktan sonra şu dosyanın çalışmasını tetiklesin
gibi durumlar için servis yazma ihtiyacı duyabiliriz.
Etc/systemd/system
dizininin altına istenen servisleri
oluşturabiliriz.
AMAÇ:
1.
Etc/systemd/system dizininin altına hello.service adlı service
oluşturmak
2.
Hello.service in görevi “sayhello.sh “dosyasını
çalıştırmaktır.
3.
Bu sayhello.sh dosyası da başka bir dosyaya
yazma işlemi yapıyor.
YAPILACAK İŞLEMLER:
1.
Etc/systemd/system dizininin altına hello.service oluştur. Dosyaya
ebru kullanıcısına izin ver. İçeriği yaz.
2.
/home/ebru/
dizininin altına sayhello.sh dosyası oluştur. Dosyaya ebru kullanıcısına
izin ver. Gerekliyse işlemleri yaz.
3.
/home/ebru/say_out.txt dosyası oluştur. Dosyaya
ebru kullanıcısına izin ver.
KULLANILACAK OLAN KOMUTLAR
#Touch hello.service (dosya oluşturma)
#Touch sayhello.sh
#Touch say_out.txt
#Sudo chown ebru:ebru hello.service (sahiplik-group yetkisi verme)
#Sudo chown ebru:ebru sayhello.sh
#Sudo chown ebru:ebru say_out.txt
#sudo chmod u+x sayhello.sh
(dosyayı çalıştırılabilir dosya yaptık)
#Sudo chmod o+x sayhello.txt (diğer kullanıcılar için de
çalıştırılabilir.)
#systemctl daemon-reload
(servis dosyalarında değişiklik yaptıkça çalıştırıyoruz.)
#Sudo systemctl start hello.service (servisi başlat)
#Sudo systemctl status hello.service (servis durumunu öğren)
#tail –f say_out.txt (servisin
amacı say_out.txt e yazmaktı sürekli bir yazım devam ediyor mu kontrol et)
Bu dizinin altında “Touch hello.service “ komutuyla service
oluştu. Hello.service isimli service oluşturduk.
Hello.service ‘inin görevi /home/ebru/sayhello.sh ‘ı çalıştırması olsun. Servis dosyasının
içeriği şuan en basit haliyle;
Öncelikle bu dosyada herhangi bir değişiklik yapıp kaydettik
sonra “systemctl daemon-reload “
komutunu çalıştırmayu unutmayalım. /home/ebru/ dizininin altına bu servisin hangi dosyayı
çalıştırmasını istiyorsak onu yazıyoruz. (Ben çalıştırmak istediğim dosyayı
burada tutmak istedim. Sizde dosya hangi dizindeyse onu yazın.) Dosya
uzantısını da ona göre belirtiyoruz. Ebru kullanıcısının oturumunda servis
çalışacaktır. Dosya yetkileri de ona göre yapılmalıdır. Dosyanın üzerinde X
işareti varsa bizim o dosyayı açma yetkimiz yoktur. Hemen ebru kullanıcısına
yetki verelim:
#Touch hello.service
#Touch sayhello.sh
#Touch say_out.txt
#Sudo chown ebru:ebru hello.service
#Sudo chown ebru:ebru sayhello.sh
#Sudo chown ebru:ebru say_out.txt
/home/ebru/sayhello.sh dosyasının yeri ve içeriği:
#“Cat sayhello.sh “ komutuyla sayhello.sh ın içeriğini
görebiliriz.
Echo “servis çalıştı”>> /home/ebru/say_out.txt
Sleep 2
“Servis çalıştı “ cümlesi servis aktif olduğu sürece
/home/ebru/say_out.txt dosyasına yazacak.
Servisin aktif durumda olduğunu ve hangi dosyayı
çalıştırdığını gösterir.
Servisi start edelim ve durumuna bakalım.
#Sudo systemctl start hello.service
#Sudo systemctl status hello.service
Active olması servisin çalıştığını gösterir. Bu servisin
hangi dosyayı çalıştırdığı da burada görünür.
Servisin doğru çalıştığını Say_out.txt dosyasına yazma
işleminden anlarız.
#tail –f say_out.txt komutuyla bu txt dosyasını sürekli olarak izler ve son satırları gösteririz.