Starta om RPi om den blir okontaktbar

Permalänk
Medlem

Starta om RPi om den blir okontaktbar

Jag har en sommarstuga där jag har en RPi4 och en 4G-router för att sköta övervakningskameror och klimat. Stugan snöar in fullständigt på vintern och kan bara nås med skidor så jag åker inte ut dit i onödan. Jag vill dock fortfarande ha koll på stugan när jag inte är där.

Problemet jag har är att det händer att RPin storknar eller att jag fet-fingrar någonting så jag tappar kontakten med den tills någon startar om den, och det är inte så lätt på vintern. Jag har redan ett cronjobb som startar om den en gång i veckan vilket är helt okej nedtid, men om detta inte skulle fungera så är den körd till våren.

Finns det något billigt och enkelt som jag kan använda för att kolla om den är kontaktbar (d.v.s gärna via SSH eller åtminstone ping, inte bara drar ström) och annars bryta strömmen till den? Jag har Philips Hue där så att trigga ett eluttag är inga problem, men jag känner att "sätt dit en till RPi och övervaka varandra" är både dyrt och krångligt.

Finns det t.ex. någon timer som jag skulle kunna sätta tiden på via Pien, och helt enkelt scripta att dagligen sätta den på 'i morgon'?
Någon billig UPS med inbyggd fjärrstyrning? Jag är ute efter en liten UPS ändå så här är budgeten lite mer förlåtande.

Permalänk
Hedersmedlem

Pajen har det inbyggt

https://diode.io/raspberry%20pi/running-forever-with-the-rasp...

Du kan även konfigurera watchdog att tex pinga någon adress och starta om ifall den inte lyckas.

Permalänk
Medlem

Typ nåt linkande borde väl vara enklast o billigaste lösningen

https://www.netonnet.se/art/smarta-hem/smart-el/smart-plugs/d...

Permalänk
Medlem
Permalänk
Medlem

Låter som att du har 230V Volt där - en klassisk veckour av mekanisk eller programmerbar typ på 230V-grenen som startar om en gång i veckan kanske?

Dock att tänka på är att SD-kort/SSD är inte helt förtjusta i plötsliga strömavbrott medans det läser och skriver data så det kanske är lämpligt med att RPI går och stänger av sig själv (shutdown) mha. cron någon timme innan den fysiska strömavbrottet och återanslutningen igen (dvs. stänger av per 6 dagar och 23 timmar drifttid)

kan säga att den lösningen har använts i även mer industriella tillämpning med trilskande och hängande enheter där det kostar pengar att besöka platsen eller bara kan göras som nattarbete...

billigaste UPS har ingen övervakning alls, de några hundralappar dyrare har ofta en USB-anslutning och emulerar en RS232-överföring och fabriksegna protokoll (dock APC-UPS protokoll är närmast standard och många program som hanterar det)

- Skall du börja ha Ethernetanslutningar så är det inte längre 'billig' UPS...

Permalänk
Medlem
Skrivet av Red Beaver:

Typ nåt linkande borde väl vara enklast o billigaste lösningen

Nackdelen är att man inte vill döda den oväntat i onödan.

Skrivet av xxargs:

[...]så det kanske är lämpligt med att RPI går och stänger av sig själv (shutdown) mha. cron någon timme innan den fysiska strömavbrottet [...]

Smart! Tänkte inte på att den slår på sig själv bara strömmen kopplas på. Jag har ju redan en reboot, så att ersätta det med en shutdown och låta eluttaget starta om den igen hade ju vart en solklar lösning om det inte vore för Aphex tips

Skrivet av Aphex:

Pajen har det inbyggt

Jag hade ingen aning att det där existerade. Vilken grej, det är ju exakt det jag söker.

Tusen tack allihopa!

Permalänk
Medlem

Problemet med mjukvaru-watchdog (även med HW-support) är att de är just mjukvara - och mjukvara har buggar... och mjukvara som sparkar hunden med jämna mellanrum kan snurra vidare och sparka hunden så att det inte gör reboot fast det är låst på hel hög olika funktioner och daemoner och har man dessutom mer än 1 ställe som sparkar så är man farligt ute.

Det är inget lätt problem att sätta funktionen som sparkar hunden på rätt ställe i programloopen som körs och det hela stannar av så att watchdogen löser för ett mycket brett område av olika felfunktioner och fellägen... det var knepigt nog att få till rätt även med små MCU med 4 kByte kod att få till idiotsäker drift som alltid repade sig även på MCU med inbyggd HW-watchdog (tänk PIC-processor) - idag med hundratusentals rader kod för ett OS så är problemet ännu värre...

Till detta kan det vara rena HW-inducerade fel som har sin grund på tex. ostabil ström, störningar etc. och det hamnar i låst läge ('lock up' på kiselnivå som inte släpper innan det görs strömlöst i en omstarts-cykel - vilket gör att en reboot hjälper inte då det blir inte spänningslöst en stund).

I dom fallen finns inget bättre problemlösare än just en hederlig Norsk Reset - dvs. ström av - vänta en kort stund och sedan slå på... med tex. oberoende mekanisk veckour som med en liten motor och växellåda bryter och sluter strömmen.

Det är bara att se på flyg och rymdindustrin vilka enorma resurser som läggs på att göra 'idiotsäker' kontrollogik och det skiter sig ändå för en situation som ingen kunde föreställa sig innan - och här pratar vi om vältestad kod!!...

På hårddiskar i de senare SATA-versionerna har man gjort om 3.3V-anslutningarna till att istället styra MOS-FET trissor som bokstavligen gör disken strömlös på 5 och 12V matningen med fjärrstyrning (de man måste tejpa vissa kontaktstrip för att disken skall starta i vanlig SATA-strömmatning med 3.3-Volt matning) för ingen har kunnat leva upp till att alltid kunna lösa olika problem med mjukvara och med olika resetsignaler etc. - Norsk Reset är kungen av problemlösarna!!

och på samma sätt i mjukvaruvärlden så vann preemtive multitasking över cooperativ multitasking på win95 -> NT4 tiden trots alla fagra löften så kunde inte programmerana lämna över bollen till annan process som de lovat i alla lägen (även alla fellägen) och man får totalhäng och enda sättet var att styra hårdhänt med preemtive multitasking och med våld ta kontrollen från programmerarna när det gällde programkörning

- kommer ihåg de verbala striderna mellan de som förespråkade preemtive multitasking vs cooperative multitasking på BBS-tiden och framåt - men på något sätt försvann det hela när win2k börja bli allmänt använt och med detta visade att preemtive multitasking (som har använts i Unix-världen och senare Linux-världen sedan dag ett) som gällde då man bevisligen av erfarenhet från DOS, win95/98 bevisade att man inte kan lita på att programmerna kunde hålla kvalitet nog för att cooperative multitasking aldrig någonsin skulle hamna i hängda lägen som låste hela datorn!

Permalänk
Rekordmedlem
Skrivet av xxargs:

Dock att tänka på är att SD-kort/SSD är inte helt förtjusta i plötsliga strömavbrott

Så är det men det går att köra helt från usb utan problem så en hdd eller ssd är inte svårt att ansluta och det behöver inte bli särskilt dyrt.

Permalänk
Medlem

En viktig skillnad här är dock att krashar min Rpi så ramlar det inte ned några flygplan, det innebär bara att jag tvingas åka skidor (vilket jag iofs gillar lika mycket som att störta i havet), så om watchdog failar ibland-men-ändå-väldigt-sällan är det helt ok.

Det är också helt gratis.

Fungerar det inte bra nog så kör jag xxargs förslag om en shutdown och låta en timer väcka pien med en power cycle!

*edit*
Eller varför inte båda? Då tappar jag inte en veckas uptime i väntan på en power cycle OCH den startas om ifall watchdogen failar.

Permalänk
Hedersmedlem
Skrivet av xxargs:

Problemet med mjukvaru-watchdog (även med HW-support) är att de är just mjukvara - och mjukvara har buggar... och mjukvara som sparkar hunden med jämna mellanrum kan snurra vidare och sparka hunden så att det inte gör reboot fast det är låst på hel hög olika funktioner och daemoner och har man dessutom mer än 1 ställe som sparkar så är man farligt ute.

Det är inget lätt problem att sätta funktionen som sparkar hunden på rätt ställe i programloopen som körs och det hela stannar av så att watchdogen löser för ett mycket brett område av olika felfunktioner och fellägen... det var knepigt nog att få till rätt även med små MCU med 4 kByte kod att få till idiotsäker drift som alltid repade sig även på MCU med inbyggd HW-watchdog (tänk PIC-processor) - idag med hundratusentals rader kod för ett OS så är problemet ännu värre...

Till detta kan det vara rena HW-inducerade fel som har sin grund på tex. ostabil ström, störningar etc. och det hamnar i låst läge ('lock up' på kiselnivå som inte släpper innan det görs strömlöst i en omstarts-cykel - vilket gör att en reboot hjälper inte då det blir inte spänningslöst en stund).

I dom fallen finns inget bättre problemlösare än just en hederlig Norsk Reset - dvs. ström av - vänta en kort stund och sedan slå på... med tex. oberoende mekanisk veckour som med en liten motor och växellåda bryter och sluter strömmen.

Det är bara att se på flyg och rymdindustrin vilka enorma resurser som läggs på att göra 'idiotsäker' kontrollogik och det skiter sig ändå för en situation som ingen kunde föreställa sig innan - och här pratar vi om vältestad kod!!...

På hårddiskar i de senare SATA-versionerna har man gjort om 3.3V-anslutningarna till att istället styra MOS-FET trissor som bokstavligen gör disken strömlös på 5 och 12V matningen med fjärrstyrning (de man måste tejpa vissa kontaktstrip för att disken skall starta i vanlig SATA-strömmatning med 3.3-Volt matning) för ingen har kunnat leva upp till att alltid kunna lösa olika problem med mjukvara och med olika resetsignaler etc. - Norsk Reset är kungen av problemlösarna!!

och på samma sätt i mjukvaruvärlden så vann preemtive multitasking över cooperativ multitasking på win95 -> NT4 tiden trots alla fagra löften så kunde inte programmerana lämna över bollen till annan process som de lovat i alla lägen (även alla fellägen) och man får totalhäng och enda sättet var att styra hårdhänt med preemtive multitasking och med våld ta kontrollen från programmerarna när det gällde programkörning

- kommer ihåg de verbala striderna mellan de som förespråkade preemtive multitasking vs cooperative multitasking på BBS-tiden och framåt - men på något sätt försvann det hela när win2k börja bli allmänt använt och med detta visade att preemtive multitasking (som har använts i Unix-världen och senare Linux-världen sedan dag ett) som gällde då man bevisligen av erfarenhet från DOS, win95/98 bevisade att man inte kan lita på att programmerna kunde hålla kvalitet nog för att cooperative multitasking aldrig någonsin skulle hamna i hängda lägen som låste hela datorn!

skön utläggning 👍

Skrivet av mrqaffe:

Så är det men det går att köra helt från usb utan problem så en hdd eller ssd är inte svårt att ansluta och det behöver inte bli särskilt dyrt.

Vill man ha hallonpaj någorlunda robust så kan det vara en bra ide att montera root som read only och ha ramdisk för det som måste ändras under gång, så man inte skriver till sd-kortet alls eller bara vid utvalda tillfällen. Finns guider för hur man fixar det med raspbian.

Då kan man ju också bryta strömmen när man känner för det.

Permalänk
Medlem
Skrivet av Kamouflage:

Nackdelen är att man inte vill döda den oväntat i onödan.

Tusen tack allihopa!

Hmm nä man kan ju styra den via någon app så du behöver bara döda den om den skulle hänga sej.

Permalänk

Om du gillar att bygga själv. Löda dit något liknande som på bilden på usb sladden så ska det funka att styra den över nätet. När det kommer till ups skulle jag bara rekommendera en så stor Power bank som möjligt med 12V uttag till routern. Det funkar också med underhållsfria mopedbatterier man med bygga till egna ups, finns massa guider. Drawback är att du inte kan se hur mycket ström du har kvar eller om det är strömavbrott.

Permalänk
Medlem
Skrivet av fuk1nlib6s:

När det kommer till ups skulle jag bara rekommendera en så stor Power bank som möjligt med 12V uttag till routern.

Power banks är lite tveksamma, oftast ger de väldigt opålitlig output och ska man ha en stor med stöd för pass through charging kan man nog lika gärna köpa en riktig UPS.

Permalänk
Medlem

Alternativ lösning. En till raspberry pi som du inte pillar på alls utan bara använder som jumphost. Gpio+relä för att starta om den andra raspberry pi'n.

Dvs om vanligaste problemet är att du pillar ner den själv men brukar gå igång igen vid hårdvaru reset.

Permalänk
Skrivet av Kamouflage:

Power banks är lite tveksamma, oftast ger de väldigt opålitlig output och ska man ha en stor med stöd för pass through charging kan man nog lika gärna köpa en riktig UPS.

Stämmer nog och kollade nu och såg att priserna på ups var överkomliga. Förlorar mycket på att omvandla 220 till 12v och 5v? Men för bara rbp går det nog bra. Jag har använt mig med 3g dongel i liknande fall utan 12v. Högt räknat så drar rbp4 1280ma det är ändå upp till 12h, om batteriet jag hade varit helt nytt. Vet dock ej om den hade pass through.

Jag vart nyfiken nu jag har en gammal batteristartare med med usb och 12 volts uttag från Exide ska nog provcykla detta senario. Se om det blir spänningsfall när den laddas samtidigt som den är tom och allt är inkopplat.

Permalänk
Medlem
Skrivet av xxargs:

Problemet med mjukvaru-watchdog (även med HW-support) är att de är just mjukvara - och mjukvara har buggar... och mjukvara som sparkar hunden med jämna mellanrum kan snurra vidare och sparka hunden så att det inte gör reboot fast det är låst på hel hög olika funktioner och daemoner och har man dessutom mer än 1 ställe som sparkar så är man farligt ute.

Det är inget lätt problem att sätta funktionen som sparkar hunden på rätt ställe i programloopen som körs och det hela stannar av så att watchdogen löser för ett mycket brett område av olika felfunktioner och fellägen... det var knepigt nog att få till rätt även med små MCU med 4 kByte kod att få till idiotsäker drift som alltid repade sig även på MCU med inbyggd HW-watchdog (tänk PIC-processor) - idag med hundratusentals rader kod för ett OS så är problemet ännu värre...

Till detta kan det vara rena HW-inducerade fel som har sin grund på tex. ostabil ström, störningar etc. och det hamnar i låst läge ('lock up' på kiselnivå som inte släpper innan det görs strömlöst i en omstarts-cykel - vilket gör att en reboot hjälper inte då det blir inte spänningslöst en stund).

I dom fallen finns inget bättre problemlösare än just en hederlig Norsk Reset - dvs. ström av - vänta en kort stund och sedan slå på... med tex. oberoende mekanisk veckour som med en liten motor och växellåda bryter och sluter strömmen.

Det är bara att se på flyg och rymdindustrin vilka enorma resurser som läggs på att göra 'idiotsäker' kontrollogik och det skiter sig ändå för en situation som ingen kunde föreställa sig innan - och här pratar vi om vältestad kod!!...

På hårddiskar i de senare SATA-versionerna har man gjort om 3.3V-anslutningarna till att istället styra MOS-FET trissor som bokstavligen gör disken strömlös på 5 och 12V matningen med fjärrstyrning (de man måste tejpa vissa kontaktstrip för att disken skall starta i vanlig SATA-strömmatning med 3.3-Volt matning) för ingen har kunnat leva upp till att alltid kunna lösa olika problem med mjukvara och med olika resetsignaler etc. - Norsk Reset är kungen av problemlösarna!!

och på samma sätt i mjukvaruvärlden så vann preemtive multitasking över cooperativ multitasking på win95 -> NT4 tiden trots alla fagra löften så kunde inte programmerana lämna över bollen till annan process som de lovat i alla lägen (även alla fellägen) och man får totalhäng och enda sättet var att styra hårdhänt med preemtive multitasking och med våld ta kontrollen från programmerarna när det gällde programkörning

- kommer ihåg de verbala striderna mellan de som förespråkade preemtive multitasking vs cooperative multitasking på BBS-tiden och framåt - men på något sätt försvann det hela när win2k börja bli allmänt använt och med detta visade att preemtive multitasking (som har använts i Unix-världen och senare Linux-världen sedan dag ett) som gällde då man bevisligen av erfarenhet från DOS, win95/98 bevisade att man inte kan lita på att programmerna kunde hålla kvalitet nog för att cooperative multitasking aldrig någonsin skulle hamna i hängda lägen som låste hela datorn!

Hur förhåller sig allt det här till hur watchdog:en på RPI fungerar i verkligheten? Det känns som att du spekulerar litet med erfarenheter av annan hård-/mjukvara som grund, men jag tycker att det skulle vara intressant att veta hur det fungerar i det aktuellt användarfallet.

Permalänk
Medlem

Inte kanske för just RPI men andra microkontrollers byggda på ARM med perferikretsar i samma kapsel (flash och RAM brukar tillkomma) vilket är mycket vanligt inom embedded idag.

Watchdog är en sak - problemet är att perferier som nätverksmoduler, USB-delar mm. olika räknar-kretsar ibland inte vaknar på rätt sett efter en watchdog-reset då de har gjort interlock i sig själva eller har andra värden i register som vid reboot inte initierats till rätt default av okända orsaker (för att programmerarna missat det - oftast), och i praktiken är enda sättet att få igång dessa igen att de görs strömlösa helt en kort stund - har utrustning som är inkopplade till cisco-routrar som gör saker över ethernet (i samband med strömavbrott oftast) som kan få ethernet-chipet i kapseln att inte svarar trots allt ser OK ut från OS-sidan och även efter hård reboot mjukvarumässigt framkallad watchdog-utlösning inte löser problemet - det enda som hjälper är full strömlöshet en kort stund. Detta är brukarens situation i fältet när utrustning inte fungerar...

Därför kan man inte räkna med att en watchdog-utlösning löser alla problemen men kan ta många av dem - man måste också värdera kostnaden/besväret när det inte kan återställa sig - på rymdfärden är det inte så populärt om det hamnar i någon interlock så att det inte svarar trots reset och andra åtgärder - men det ser man också på närmare håll som Hårddiskar tänkta för serverbruk - att i SATA3.2 standarden (även SAS) har numera istället för 3.3V spänningsingång som ingen ändå använder - ingång som styr MOS-FET-trissor som verkligen gör disk-kontrollerkortet helt strömlös när ingången är hög (ala 3.3 Volt, ni som har chuckat WD-diskar ur externa USB-diskar för diskar vit label och måste tejpa kontakttungor känner nog igen problemet...) då man upptäckt att man inte behöver byta lika många diskar som innan då många av dem som försvinner och inte kan väckas med busreset och andra trix - kommer tillbaka igen med hederlig norsk reset och kan hålla i många tiotusentals timmar efter det.