Elektronik veya gömülü sistemler gibi konularla ilgiliyseniz Raspberry Pi ile mutlaka yolunuz kesişmiştir. Raspberry işletim sistemi olarak bir debian türevi olan Raspbian kullanır. Dolayısıyla işletim sistemiyle ilgili bir durum sözkonusu olduğunda direkt olarak debian arşivlerinden faydalanabilirsiniz.
Ben de yazdığım bir python scriptini başlangıçta çalıştırmam gerektiği için yaptığım araştırma sonucu debian makalelerinde çözüme ulaştım. Linux dağıtımlarında kendi scriptlerinizi boot anında çalıştırmak için birkaç yol var. Ben sadece init.d yöntemini anlatmaya çalışacağım.
Öncelikle Raspberry’ye bir ssh client üzerinden bağlanın. Ardından şu şekilde bize gerekli dizine gidelim:
1 |
cd /etc/init.d |
Bu klasörde bir dosya oluşturup, onu çalıştırılabilir hale getireceğiz. Kendinize göre bir isim belirledikten sonra dilediğiniz bir editörle yeni dosya oluşturun. Ben nano kullanıyorum. Örn:
1 |
sudo nano benim-scriptim |
Bu komutun ardından nano sizin için yeni bir pencere açacaktır. Ancak komutun başındaki sudo‘yu yazmazsanız, muhtemel sebeple root olarak giriş yapmadığınız için dosyayı kayıt edemezsiniz.
Başlangıçta çalışacak scriptimiz için örnek kalıp ise şöyle:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#! /bin/sh # /etc/init.d/benim-scriptim # case "$1" in start) echo "benim-scriptim Baslatiliyor..." sudo python /home/scripts/elektronik-haberlesme.py & ;; stop) echo "benim-scriptim Durduruluyor..." sudo killall python ;; *) echo "Kullanim: /etc/init.d/benim-scriptim {start|stop}" exit 1 ;; esac exit 0 |
Scripti kendinize göre düzenledikten sonra Ctrl + X ile çıkın. Kaydetmek isteyip istemidiğinizi sorduğunda [Yes] yanıtını verin. Şimdi scriptimiz hazır ancak onu “çalıştırılabilir” olarak ayarlamamız gerekliyor.
1 |
sudo chmod 755 /etc/init.d/benim-scriptim |
Şimdi de sembolik bağlantısını yapmalıyız. Hemen aşağıdaki komutu uyguluyoruz:
1 |
sudo update-rc.d benim-scriptim defaults |
Bütün işlemler neredeyse tamamlandı. Script çalışırken bir hata alıp almadığınızı önceden görebilmek için şunu uygulayabilirsiniz:
1 2 3 4 5 6 7 8 |
#Servisi Başlat sudo /etc/init.d/benim-scriptim start #Servisi Durdur sudo /etc/init.d/benim-scriptim stop #Raspberry'yi yeniden başlat sudo reboot |
Merhaba. Öncelikle konu için teşekkürler. Yalnız ben update komutunu yazarken;
insserv: warning: script ‘K01watchingPi’ missing LSB tags and overrides
insserv: warning: script ‘watchingPi’ missing LSB tags and overrides
şeklinde hata alıyorum ve komutu çalıştıramıyorum. Yardımcı olabilir misiniz?