Fråga:
Hur man håller vakthundstimern igång under omstart / avstängning
Duje
2017-06-12 15:31:47 UTC
view on stackexchange narkive permalink

I min forskning hittills har jag lagt märke till att det finns två tillvägagångssätt för att aktivera en vakthundstimer på hallon: att använda systemd eller installera vakthund. Allt förklaras bra här: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=147501#

Och jag har lyckats få det arbetar båda sätten, men inte under omstart / avstängning. Jag använde en forkbomb för att testa den och den reagerar på det, men när jag försöker:

  sudo poweroff  

Det förblir bara nere. Så jag tänker finns det sätt att tvinga vakthunden att fortsätta springa under omstart / avstängning så att den återställs efter några sekunder om den inte startar ordentligt?

De flesta tillvägagångssätt startar vakthunden under start, men vad om du behöver det hela tiden? Mitt hallon stannade en gång i omstart och jag var tvungen att koppla ur / koppla in det manuellt för att få det att fungera.


UPDATE :

Vissa saker är mycket tydligare för mig nu. Det finns 3 saker att tänka på:

  1. vakthundstimer
  2. watchdog daemon
  3. watchdog service daemon

watchdog timer: ett register som utlöser en återställning när den flödar över, varje cykel av RPI stegas det, måste rensas (sparkas) regelbundet för att undvika återställning

För att köra det vid start lägg till följande till /boot/config.txt :

dtparam = watchdog = on

watchdog daemon: en process som ansvarar för att rensa (sparka) vakthundtimern regelbundet

Installera det:

sudo modprobe bcm2835_wdtecho "bcm2835_wdt" | sudo tee -a / etc / modulessudo apt-get install watchdogsudo update-rc.d watchdog default

Configure /etc/watchdog.conf :

watchdog-device = / dev / watchdogwatchdog-timeout = 14realtime = yespriority = 1max-load-1 = 24

Konfigurera / etc / default / watchdog :

watchdog_module = "bcm2835_wdt"

För att konfigurera det lägg till följande till /etc/modprobe.d/watchdog.conf :

alternativ bcm2835_wdt nowayout = 1 hjärtslag = 10

referens: http://vk5tu.livejournal.com/35721.html

Parametern hjärtslag till kärnmodulen är det maximala klyftan mellan hjärtslag som ses av enheten innan hårdvaran startar om igen

Parametern nowayout avgör vad som händer när / dev / vakthundsenheten är stängd: förväntas hjärtslag fortfarande eller inte? Värdet 1 säger att nedräkningen till en omstart fortsätter och om enheten inte öppnas igen och ett hjärtslag skrivs kommer maskinen att startas om.

Aktivera det (Om detta inte fungerar , ta hand om watchdog.service och försök igen):

sudo systemctl aktivera watchdog

Övervaka den:

sudo systemctl status watchdog

watchdog service daemon: acitvates when watchdog daemon misslyckas / stoppar, kör vanligtvis en keepalive daemon som sparkar vakthund regelbundet

Konfigurera /lib/systemd/system/watchdog.service:

# OnFailure = wd_keepalive.service - Kommentera det här inaktiverar keepalive -demon så när övervakningsdemon misslyckas / stoppar ingenting hindrar vakthundstimern från att starta om RPI

[Installera] WantedBy = multi-user.target - bug fix


Slutligen:

Starta om RPI. När hallon startas om bör allt starta (vakthundstid för att kontrollera denna användning:

cat / var / log / syslog | grep vakthund

Förväntad utgång:

14 juni 12:09:08 raspberrypi systemd [1]: Startar vakthundens demon ... 14 juni 12:09 : 08 raspberrypi vakthund [813]: startdemon (5.14): 14 juni 12:09:08 raspberrypi vakthund [813]: int = 1s realtid = ja synkronisering = ingen mjuk = ingen mla = 24 mem = 0Jun 14 12:09: 08 raspberrypi vakthund [813]: ping: ingen maskin att kontrolleraJun 14 12:09:08 raspberrypi vakthund [813]: fil: ingen fil att kontrolleraJun 14 12:09:08 raspberrypi vakthund [813]: pidfile: ingen serverprocess att kontrolleraJun 14 12:09:08 raspberrypi vakthund [813]: gränssnitt: inget gränssnitt att kontrollera 14 juni 12:09:08 raspberrypi vakthund [813]: temperatur: inga sensorer att kontrolleraJun 14 12:09:08 raspberrypi vakthund [813]: test = ingen (0) reparation = ingen (0) vid liv = / dev / vakthund hjärtslag = ingen till = root no_act = ingen kraft = noJun 14 12:09:08 raspberrypi vakthund [813]: vakthund nu inställd på 14 sekunderJun 14 12:09:08 raspberrypi vakthund [813]: hårdvara vakthundens identitet: Broadcom BCM2835 Watchdog timerJun 14 12:09:08 raspberrypi systemd [1]: Startad vakthunddemon.

Och:

ps aux | grep watchdog

Förväntad utgång:

root 813 0,0 0,2 1888 1760? SLs 12:09 0:00 / usr / sbin / watchdogpi 900 0,0 0,2 4752 1992 poäng / 0 S + 12:10 0:00 grep --color = auto watchdog


TEST:

Döda vakthunddemon, kör:

ps aux | grep vakthund

Se process-ID och döda det:

rot 812 0,0 0,2 1888 1760? SLs 12:16 0:00 / usr / sbin / watchdogpi 898 0,0 0,2 4752 1992 poäng / 0 S + 12:16 0:00 grep --color = auto watchdog

sudo kill -9 812

Klassiskt forkbombtest, kör:

: () {: |: &} ;:

För att testa återställs hallon om omstartsprocessen misslyckas, kör:

sudo poweroff - med den här har jag haft några problem

Hallon borde starta om efter cca 15s.

Fyra svar:
nickcrabtree
2017-11-23 19:17:04 UTC
view on stackexchange narkive permalink

sudo poweroff betyder att du stänger av och håller dig borta. Vakthunden får inte och bör inte fånga upp detta. Det beteende du upplever är korrekt och du bör inte förvänta dig att vakthunden startar om ett avstängt system.

Jag tror dock inte att det här är vad du vill göra. Om du vill starta om pi. du bör använda kommandot sudo reboot istället. Och i det här fallet, om något hänger under avstängningen - startsekvens som omstart utlöser, bör vakthunden sedan ta över.

Milliways
2017-06-12 15:57:13 UTC
view on stackexchange narkive permalink

Jag vacklade inte igenom hela det rant du länkade, men författaren verkar inte förstå vakthunden.

Det finns en BCM hårdvaruövervakningshund; Om du vill starta maskinvaruövervakningen inkludera dtparam = vakthund = på i /boot/config.txt

I och för sig gör det lite, även om det bör starta om systemet om det inte "sparkas" regelbundet. Du kan skriva kod som öppnar / dev / watchdog för att starta den.

Det finns också en watchdog daemon som du kan konfigurera för att aktivera vakthunden; du bör kunna börja med sudo systemctl aktivera vakthund

OBS att felet som nämns nedan var i Jessie och är fixat i Stretch
Tyvärr finns det känt fel systemd-skriptet, som enkelt kan fixas. Se http://unix.stackexchange.com/questions/346224/problem-with-systemd-starting-watchdog

Tack för svaret, jag har lagt till en uppdatering i mitt ursprungliga inlägg för att visa mina framsteg. Men jag har fortfarande problem med att få WDT att starta om RPI när jag kör `sudo poweroff`. Ibland fungerar det, ibland fungerar det inte: S
Tyvärr verkar du ha blandat många olika idéer. Jag hävdar inte att jag är expert på vakthund utan för att se om den kör 'systemctl status watchdog.service'. Att döda "vakthund" ** KOMMER INTE ** orsaka en omstart, eftersom "watchdog.service" startar "wd_keepalive.service" vid stängning, vilket som namnet antyder ** FÖREBYGGER ** omstart.
Inte om du inaktiverar wd_keepalive.service. Som så: "Konfigurera /lib/systemd/system/watchdog.service:`# OnFailure = wd_keepalive.service" - Om du kommenterar detta inaktiveras keepalive-demonen så när vakthunddemon misslyckas / stoppar ingenting hindrar vakthundstimern från att starta om RPI "
Yigit Turgut
2018-07-16 23:00:52 UTC
view on stackexchange narkive permalink

Power är en systemtjänst / daemon i pi och strängar analyseras av en IC som direkt stiftas ut / fläktas till Broadcom IC. Drift arbetsflöde kan ändras genom att hänvisa till systemfiler men från vad jag kan säga försöker du åberopa periperhials i anpassade energiregleringsscenarier inom begreppet avbrott och vakthundstimer. Du kan ändra en del av detta beteende genom att repinnisera reglerings-IC och göra en programmering av ren metall före start. Kolla in dessa och tveka inte att kontakta mig om du har något i åtanke. kolla in ARM Corp. uppsättning referenslinjeinstruktioner samt arkitekturdokumentation. Det finns på webben.

http://infocenter.arm.com/help/topic/com.arm.doc.dui0489f/DUI0489F_arm_assembler_reference.pdf

https://www.arm.com/files/pdf/CortexM3_programming_for_ARM7_developers.pdf

Btw, säg "hej" till din professor ...

Malvineous
2020-06-06 16:38:45 UTC
view on stackexchange narkive permalink

Bara för att hjälpa någon här från Google är det senaste sättet (från och med 2020) att använda vakthundtimern att konfigurera den genom systemd. Detta kräver ingen ytterligare programvara för att installeras.

För att göra detta, redigera /etc/systemd/system.conf och ställ in RuntimeWatchdogSec till ditt önskade värde, som 30s i 30 sekunder. Kör systemctl daemon-reload för att tillämpa ändringen.

Du kan använda wdctl för att bekräfta att vakthunden är tillgänglig, vilket ger dig lite mer info än ser om / dev / watchdog är närvarande.

Du behöver bara ställa in dtparam = watchdog = on i / boot / config .txt om du använder en Pi 2 eller tidigare eftersom den är på som standard sedan Pi 3.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...