Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
Share Thread:
birden fazla raspberry pi'yi ethernet üzerinden haberleştirme
#1
Saygı değer arkadaşlar forumda yeniyim,
raspberry de de  yeniyim  ama ilk etabını çözdüğüm projemle ilgili tıkandığım bir nokta var yardımcı olabilecek birisi çıkarsa çok memnun olucam...

2 adet rasp.pi3 kartını ethernet üzerinden haberleştiriyorum, kablolu yada kablolu bağlı farketmiyor, iplerini sabitledim,
biri server gibi çalışıyor, diğeri client, 
client olan raspberry de bir tetik ucu yada buton var butona basıldığında ağdan diğer server respberry 'ye bilgi gönderiyor ve o da kendi üzerindeki çıkışı aktif ediyor,
ağdan karşılıklı açtım kapattım bilgisi verebiliyor ve stabil çalışıyor, tetiği verince tetikliyor, çekince bırakıyor...


ilk problemim şu,
eğer server pi de yazdığım py programı çalışmıyorsa yada server pi hiç çalışmıyor yada network problemi varsa client pi deki program açılamıyor hata veriyor..

dolayısıyla bi şekilde haberleşemedikleri için sistem çöküyor.. ben istiyorum ki hem server hem de client için karşılıklı bağlantı olmadığı zaman, haberleşemedikleri zaman hem bir uyarı led yakma vs, hem de sistemi yeniden başlatma gibi yeniden bağlanma denemeleri yapsın istiyorum.

Bunun için nasıl bir çözüm önerirsiniz???

teşekkürler...
Ara
Cevapla
#2
Script python mu ?

İdeal yolu systemd ile vs. bir daemon yapmak, sonra onun içine daemonu hazırlarken "Restart=always" veya "Restart=on-failure" komutunu eklemek. Bu sayede daemon çöktükçe otomatikman yeniden başlayacak. Alternatif olarak daemon durumunu kontrol de edebilirsin ve ona göre yeniden başlatan bir script yazabilirsin.

Örnek bir syetemd daemonu, kendi sunucumdan: /etc/systemd/system/deneme.service

Kod:
[Unit]
Description=deneme Daemon
After=syslog.target network.target

[Service]
User=deneme
Group=deneme
Type=simple
ExecStart=/usr/bin/python /opt/deneme/deneme.py
TimeoutStopSec=20
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Nasıl oluşturulur, nasıl eklenir, nasıl aktif edilir hangi aşamadan sonra aktif olsun vs. detayına girmeyeceğim keza yeri değil burası. Ama buradaki Restart=on-failure sayesinde bir sebepten kill olsa bile yeniden otomatik ayağa kalkıyor.

Bir diğer alternatif nodejs aracı olan pm2 ile çalıştırmak.


Script'e örneğin


Kod:
./deneme.py

gibi erişebiliyorsanız

nodejs, ardından pm2 kurup, ardından tek seferlik "pm2 startup" deyip açılış scriptini kaydedip, ardından


Kod:
pm2 start deneme.py
pm2 save

diyerek, kapandıkça yeniden açılan, restartlarda da açılan ve açık kalan bir scriptiniz olacak.

Veya her çalıştırma sonrası pid'i bir yerde tutar, ps aux|grep pidno gibi bir şeyle açık olduğunu kontrol ederdim. Sağlıklı değil ama bu.

Tercihim systemd daemon'dan yana tabii ki.
Lütfen özel mesajla soru sormayın arkadaşlar. Cevaplamayacağım. Bu forumdaki ben de dahil herkese sorabilecekken neden bir kişiyle yetinesiniz ki?

-Dubito, Ergo Cogito, Ergo Sum
Ara
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Soru] Raspberry pi ethernet ziyaozclk 2 2,638 12-23-2014, 05:13 PM
Son Yorum: Arda

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi