3 Ağustos 2018 Cuma

Upstart ile linux başlangıç servisi yönetimi

Upstart Ubuntu linux dağıtımının yapımcısı olan Canonical Ltd. tarafından geliştirilen, Ubuntu 6'dan 16'ya kadar kullanılmış olan, sistemin yüklenmesi ve başlangıç hizmetlerinin çalıştırılmasından sorumlu init sistemidir.  SysV init ile uyumlu olması kolay anlaşılır yapılandırma dosyaları sayesinde upstart ubuntu dışında da bir kaç linux distrosunda kullanılan bir sistem olmuştu. Ubuntu 16 ile beraber CentOS, Debian, Archlinux gibi birçok dağıtım gibi bir çok dağıtım systemd ye geçti. 

Systemd çok büyük yazılım olması ve işletim sisteminin neredeyse tamamını kontrol etmesi sebebiyle linux caimasında pek sevilmedi. Küçük programların kendilerine özel işleri yaptığı ve bu işlerin birbirine bağlanması mantığına dayalı linux felsefine ters olan systemd'ye geçmek istemiyorsanız desteği 2019 nisana kadar sürecek olan Ubuntu 14.04 ile yola devam edebilirsiniz. Bunun dışında mail-in-a-box gibi bazı büyük uygulama dağıtımları yalnızca upstart destekliyor. Bu gibi dağıtımlarla da çalışacaksanız upstart sizin için hala önemli diyebiliriz.

Upstart scriptleri /etc/init içerisine .conf uzantılı dosyalar yazılıyor. İhtiyacımız olan bir çok özelliği barındıran örnek bir yapılandırma dosyası aşağıdaki gibi oluşturabilirisiniz.

nano /etc/init/ornekservis.conf

description "ornekservis"

env ortamdegiskeni1=deger1
env ortamdegiskeni2=deger2

start on runlevel [2345]
stop on runlevel [!2345]

respawn
post-stop exec sleep 5
limit nofile 65000 65000

setuid root
setgid root

chdir /root/ornekservis
exec /usr/bin/python ornekservis.sh

Servisimiz sistem hazır olduğunda çalışması için start on runlevel [2345] ifadesini kullanıyoruz. respawn ile servis kapatılırsa yeniden başlayacak şekilde tanımlanmış oluyor. Sorunlu bir servisin üst üste kendini çalıştırmayı engellemek için araya post-stop exec sleep ile bekleme süresi koyabiliyoruz. setuid setgid ile uygulamanın hangi kullanıcı ve grup üzerinden çalışacağını upstarta bildirebiliyoruz. Örnekte kullanım rahatlığı olarak root kullanmış olsak da normalde yetkileri sınırlı kullanıcılar kullanmak sistem güvenliği adına daha doğru olacaktır.

lsof +D /var/log/upstart/
komutu ile çalışmakta olan servislerin log dosyalarının konumlarını görebiliriz.

Bu dosyaları anlık takip etmek için tail -f kullanabiliriz
tail -f /var/log/upstart/redis-server.log


upstart servisilerini başlatıp durdurmak için ise service start, service stop, ya da doğrudan start stop komutlarını kullanabiliriz. status ile de servisin çalışıp çalışmadığını kontrol edebiliriz.

service ornekservis start
service ornekservis status
service ornekservis stop

start ornekservis
status ornekservis
stop ornekservis

start, stop, status gibi komutlar arkaplanda initctl kullanıyor. yani start servisadi arkaplanda initctl start servisadi olarak çalışıyor. Bunu status komutunu takip ederek görebiliriz:

çalışan servisleri görmek için ise:
initctl list | grep running

komutunu kullanabiliyoruz.



Evernote helps you remember everything and get organized effortlessly. Download Evernote.

2 yorum:

  1. Casino at Harrah's Cherokee - Mapyro
    › › 강릉 출장안마 Cherokee, NC Casinos › 평택 출장안마통영 출장안마 Cherokee, NC Casinos Find 강원도 출장안마 Casinos Near Harrah's Cherokee near Murphy 천안 출장마사지 in Cherokee.

    YanıtlaSil

hmm