Linux Cihazlarda İlk Açılışta Nasıl Program Çalıştırılır?

Merhaba, bu yazıda geliştirmiş olduğumuz bir programı executable olarak Linux işletim sistemli bir bilgisayarda açılır açılmaz çalışmasını istiyorsak kullanabileceğimiz bir yöntemden bahsedeceğiz. Aslında burada yapacağımız iş bilgisayar başladığında çalışan programlar gibi kendi programımızı da tanımlamak. Bir bilgisayar açıldığında çalışan programlara örnek vermek gerekirse, virüs programları ve ya driverları örnek gösterebiliriz. 

  • Windows cihazlarda bunların bir listesini görmek için ise görev yöneticisindeki ‘Startup’ sekmesine bakabilirsiniz.
  • Linux-Ubuntu cihazlarda ise bu programları arama kısmına “Startup Applications” yazarak erişebilirsiniz.
  • Diğer bazı Linux cihazlarda ise terminalde “initctl list” komutunu kullanabilirsiniz. 

Peki kendi uygulamamızın nasıl başlangıçta çalışmasını sağlayabiliriz? Linux sistemlerde başlangıçta  gerçekleşmesi gereken process leri yönetebildiğimiz bir yapı mevcuttur. Bu yapı systemd dosyalarıdır. 

1- İlk olarak bir konfigürasyon dosyası oluşturacağız ve gereken içerikleri yazacağız. Dosyayı oluşturmak için aşağıdaki terminal komutunu yazalım:

sudo nano /lib/systemd/system/sample.service

2-  Daha sonra içine aşağıdaki script i yazalım ve kaydedelim:

  • Yukarıdaki ExecStart kısmına çalıştırılmasını istediğiniz executable dosyasının path ini yazıyoruz. 
  • Bu işlem için sudo yetkisi gerekmektedir. 

3- Daha sonra aşağıdaki komutları yazıyoruz

sudo chmod 644 /lib/systemd/system/sample.service

sudo systemctl daemon-reload

sudo systemctl enable sample.service

  • Yukarıdaki komutlarda ilk olarak sample.service dosyası için gerekli izinleri veriyoruz. Daha sonra aktif olması için gerekli konfigürasyonları yapıyoruz.

4- Yukarıdaki 3 işlem sonunda işlemimiz bitecektir. Test için terminal reboot yazarak sistemimizi baştan başlatalım ve test edelim. Artık sistemimiz her yeniden başladığında otomatik olarak belirttiğimiz executable çalışacaktır.

Leave a Reply

Your email address will not be published. Required fields are marked *