20 Ocak 2016

CentOS ve RHEL'de Sistem Servisleri ve Kontrolü

CentOS ve RHEL'de Sistem Servisleri ve Kontrolü

Linux sistemlerden özellikle RHEL ve CentOS üzerinde açık olan servisleri nasıl kontrol edebiliriz, gereksiz servisleri nasıl kapatırız ve tekrardan açarız, konu altınca paylaşacağım.

Netstat kullanarak herhangi bir UDP/TCP port üzerinde çalışan servislerin listesi;
# netstat -luntp

Netstat kullanarak açık servisler ve açık portları listelemek için;
netstat -tulpn

Servislerin durumunu görmek için;
service --status-all

lsof (LiSt Open Files) kullanarak aynı işlemi yapmak için;
# yum -y install lsof
# lsof -i -n |egrep 'COMMAND|LISTEN'

Linux dağıtımlarında chkconfig aracı sistem servis yönetimi için kullanabilirsiniz. Aktif veya pasif servisleri görüntülemek için;
# chkconfig --list

Örneğin network servisinin ver bir çalışma seviyesini görmek için;
# chkconfig --list network

Eğer Network servisinin sadece 4. çalışma seviyesinde başlatılmamasını istiyorsak;
# chkconfig --level 4 network off

Tekrar aktif etmek için;
# chkconfig --level 4 network on

Linux'a sonradan yüklediğiniz bir servis eğer chkconfig aracı tarafından tanınmıyorsa, yapmanız gereken başlatma betiğini (startup script) /etc/init.d veya /etc/rc.d/init.d altına kopyalamak ve daha sonra o servisi aşağıdaki gibi chkconfig aracına tanıtmanız gerekir;
# chkconfig --add servis-adi

Servis durdurmak ve kapatmak için kullanılan komutlar;
# service servis_adi stop
# chkconfig servis_adi off

Sonra açmak için aşağıdaki komutu kullanın;
# chkconfig service on

Örnekle Printing servisi olan (cups) işlemini komple kapamak için;
# service cups stop
# chkconfig cups off

Sonra açmak için aşağıdaki komutu kullanın;
# chkconfig cups on

Servisleri başlatma(start), durdurma(stop), durumunu kontrol etmek(status) ve yeniden başlatma (Restart) olarak komutlar verebiliriz. Diğer varyasyonlar ise; try-restart, reload, force reload olarak sıralayabiliriz. Aşağıdaki varyasyonlarda göreceğiniz gibi servislerin çoğu /etc/init.d veya /etc/rc.d/init.d altındadır.

Servisin hangi varyasyonları desteklediğini görmek için;
# service servis_adi
# service network

Örnek olarak SSHD servisi üzerinde çalışalım ve sunucu işletim sistemi CentOS 6.7 olsun.

SSHD servisi durumunu kontrol etmek için;
# service sshd status

veya /etc/init.d/ dizini altına gelip çalıştıralım;
# cd /etc/init.d
# ./sshd status

Servisi kapatıp sonra açalım;
# service sshd stop
# service sshd start

veya /etc/init.d/ dizini altına gelip önce kapatıp sonra açalım;
# cd /etc/init.d
# ./sshd stop
# ./sshd start

Eğer sisteme SSH ile uzaktan bağlıysanız, servisi elle stop etmek bindiğiniz dalı kesmek anlamına gelir. Böyle bir durumda, şayet başka bir uzaktan erişim protokolü kullanmıyorsanız, fiziksel olarak sistemin başına gitmeniz gerekir.

CentOS 6.X Sürümleri İçin;

Printing(Cups) servisi için varyasyonlar;
# /etc/init.d/cups stop (Cups durdurmak için)
# service cups stop (Cups durdurmak için)

MySQL servisi için varyasyonlar;
# /etc/rc.d/init.d/mysqld stop (MySQL durdurmak için)
# service mysqld stop (MySQL durdurmak için)
# /etc/rc.d/init.d/mysqld start (MySQL başlatmak için)
# service mysqld start (MySQL başlatmak için)
# /etc/init.d/mysqld restart (MySQL yeniden başlatmak için)
# service mysqld restart (MySQL yeniden başlatmak için)

Apache servisi için varyasyonlar;
# /etc/init.d/httpd start (Apache başlatmak için)
# service httpd start (Apache başlatmak için)
# /etc/init.d/httpd stop (Apache durdurmak için)
# service httpd stop (Apache durdurmak için)
# /etc/init.d/httpd restart (Apache yeniden başlatmak için)
# service httpd restart (Apache yeniden başlatmak için)
# /scripts/restartsrv httpd (Apache yeniden başlatmak için)

CentOS 7.X Sürümleri İçin;

MariaDB servisi için varyasyonlar;
# systemctl start mariadb
# systemctl stop mariadb
# systemctl restart mariadb
# systemctl status mariadb

Kaynaklar
Syslogs (Çağrı Ersen)
Linux Sistem ve Ağ Yönetimi (Alper Özbilen)

Burak AVCI - Update: 21.05.2022