- systemctl linux servislerini ve hatta 3.parti servisleri kontrol etmeye yarayan bir araçtır.
- Centos 7 ile birlikte service komutunun yerini almıştır.
Bazı kullanım şekli;
- systemctl (systemctl list-units ile aynı işlevi görür)
Sistemdeki aktif servisleri gösterecektir.
- systemctl list-units –all
Sistemdeki aktif olsun olmasın tüm servisleri gösterir.
- systemctl start | stop | status servisadı.aplikasyon (sadece aplikasyon adını yazarak da genelde kullanılabilir)
Yukardaki komut istediğimiz servisi sırasıyla başlatmaya, durdurmaya veya durum bilgisini almaya yarar.
- systemctl enable aplikasyon
Yukarıdaki komut aplikasyonumuzun sistem her boot edildiğinde başlatılmasını sağlar, bunun için sistem arkplanda /lib/systemd/system veya /etc/systemd/system içinde bulunan servis dosyasından sembolink link oluşturup diskte systemdnin otomatik başlatılacak dosyaların bulunduğu yere atar.
- systemctl disable aplikasyon
Yukardaki komut aplikasyonunun otomatik başlatılmasını sağlayan sembolik linki kaldırır.
- systemctl status aplikasyon
Yukardaki komut servis durumunu, cgroup hiyararşini ve birkaç log satırını gösterir.
- systemctl restart aplikasyon
Yukardaki komut servisi yeniden başlatmamızı sağlar
- systemctl reload aplikasyon
Yukardaki komut restart ile aynıdır, servisi yeniden başlatmamızı sağlar
- systemctl restart-or-reload aplikasyon
Yukardaki komut eğer aplikasyonda restart veya reload komutlarından hangisini çalıştıracağımızdan emin değilsek kullanabiliriz.
systemctl ile bilgisayarımızı aşağıdaki şekilde yeniden başlatabilir, kapatabilir veya halt edebiliriz.
- systemctl poweroff
- systemctl reboot
- systemctl halt
Not: Ayrıca kendi istediğimiz dosyaları systemctl tarafından kontrol edilmesini istiyorsak /etc/systemd/system klasörü altına servisadı.service adı altında kaydederek yapabiliriz. Bu şekilde yarattığımız dosyaların belli bir formata uyması gerekmektedir
Ör :
[Unit]
Description=<Servis tanımı>
[Service]
User=<kullanıcı adı ör: root>
WorkingDirectory=<servisin klasörü ör: /root>
ExecStart=<çalıştırılacak script adı>
# Ekstra parametreler
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
eğer bir phyton eklemek istersek şu şekilde yapabiliriz.
[Unit]
Description=<Servis tanımı>
[Service]
User=<kullanıcı adı ör: root>
WorkingDirectory=<Phyton scriptinin bulunduğu klasör>
ExecStart=/home/user/.virtualenv/bin/python main.py
# Ekstra parametreler
Restart=always
RestartSec=3
# /home/user/.virtualenv/bin/python 'u kendi virtualenv and main.py dosyalarınızın olduğu yerle değiştirin
[Install]
WantedBy=multi-user.target