Sida 1 av 2

Autostarta ett program på RPi 0W

Postat: 22 september 2023, 14:56:12
av Marta
Har en RPi 0W med ett program kompilerat med gcc som skall autostarta när Linux kommit igång. Det funkar inte i /etc/rc.local, troligen för att den startar i singeluser mode. Den körs headless och hanteras via SSH. Minsta versionen av Raspbian, eller vad det huter nuförtiden.

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 15:28:04
av Mickecarlsson
Skapa en systemd-fil och låt systemd sköta jobbet. Lite exempel här: https://www.howtogeek.com/687970/how-to ... h-systemd/

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 15:48:39
av Marta
För stökigt på alla sätt. Vill ha det så långt ut ur systemet som möjligt.

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 16:31:35
av Mickecarlsson
Det funkar inte i /etc/rc.local, troligen för att den startar i singeluser mode
Kör du pajen i singleuser mode?
Har du testat /etc/inittab?

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 16:40:37
av Zkronk
Säga vad man vill om systemd, men det är ändå relativt smidigt att få det att autostarta egna applikationer, samt att automatiskt starta om dom ifall de skulle krascha osv.

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 17:00:23
av ojz0r
Jag har för mig att cron har ett alternativ att köra vid systemstart, kanske kan kolla på det?

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 17:12:42
av guckrum
Daemontools, om du inte vill lämna något åt slumpen.

https://cr.yp.to/daemontools.html

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 17:47:25
av Marta
Tack för alla förslag.

Helst skall det köras som om det startats genom att skriva på kommandoraden av en user != root. Så system-fjärran som möjligt.

Programmet använder watchdogfunktionen i RPi. Dyker det eller den PIC som det hela tiden kommunicerar med slutar svara så skall allting göra reset. PIC får reset via GPIO när programmet startar.

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 18:15:54
av guckrum
Daemontools kör servicen som en användare, och loggern som en annan. Men att sätta upp det kräver lite datorvana:-)

Re: Autostarta ett program på RPi 0W

Postat: 22 september 2023, 20:03:58
av Marta
Nu är det löst och fungerar. Det blev chron, tack för hjälpen.
"@reboot /path/command parameter" i chrontab, enkelt och lätt.

Re: Autostarta ett program på RPi 0W

Postat: 4 oktober 2023, 16:05:49
av Marta
En följdfråga på detta program.
Tyvärr finns det inget autostopp när strömmen försvinner av en eller annan anledning. Programmet självt loggar 128 bytes varje kvart och flushar filen direkt efter. Det borde rimligtvis ge låg sannolikhet för crashat filsystem.
Däremot har systemet i sig en förbannad massa processer igång, samt loggar och allt möjligt annat. Finns det någon beskrivning på vad och hur så mycket krafs som möjligt kan rensas för att minimera risken för en crash? Det är ext4 filsystem.

Re: Autostarta ett program på RPi 0W

Postat: 4 oktober 2023, 18:15:01
av guckrum
Börja med att kolla att /tmp ligger i RAM.

Re: Autostarta ett program på RPi 0W

Postat: 4 oktober 2023, 21:11:08
av ajje
EXT4 är journalförande. Det ger en minskad risk för filsystemshaveri vid strömbortfall.
Inte eliminerad risk, men minskad i alla fall.

Ser man sedan till att /tmp och liknande ligger i RAMFS minskar det risken ytterligare.
Man kan ju även se till att /var/log hamnar där om man inte anser att loggning är viktigt.
(Är loggning viktigt är det bättre att se till att köra syslog remote)

Re: Autostarta ett program på RPi 0W

Postat: 5 oktober 2023, 08:55:28
av Marta
Tror att både /tmp och /var/tmp ligger i ram, men hur kontrollerar jag att så verkligen är fallet?

Angående ram, är det möjligt att stänga av bildminnet, eller i varje fall begränsa det till minsta möjliga? Hittar inget tydligt om detta.

Re: Autostarta ett program på RPi 0W

Postat: 5 oktober 2023, 10:07:37
av guckrum
Kör "mount" och verifiera att de är tmpfs-filsystem.