raspberry starta python script vid boot

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Gizmo
Inlägg: 1625
Blev medlem: 8 september 2009, 00:37:45
Ort: Göteborg
Kontakt:

Re: raspberry starta python script vid boot

Inlägg av Gizmo »

En liten kommentar efter att ha läst igen om tråden. Tänker jag fel som skulle skulle försöka lösa själva grundproblemet med crontab istället?
Naturligtvis beror det lite på hur scriptet är utformat, men det finns ju inget som hindrar att scriptet körs en gång per minut sedan datorn startas.

Om det är fel tänkt, berätta gärna varför.
Nerre
Inlägg: 27168
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: raspberry starta python script vid boot

Inlägg av Nerre »

Med crontab så kan du bara starta det.

Om du gör det som en service så kan du starta, stoppa, starta om och eventuellt även kolla status (om det körs eller inte). Du får också möjligheten att välja i vilke runlevels du ska köra det om du kanske vill kunna starta upp burken utan att det är igång.

Detta är kanske inga saker som du verkligen behöver, men det är snyggare lösningar och det är dessutom lättare att se hur grejerna hänger ihop.

Starta med cron går ju iofs, men vad händer om cron av nån anledning inte körs?
Användarvisningsbild
JimmyAndersson
Inlägg: 26456
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: raspberry starta python script vid boot

Inlägg av JimmyAndersson »

xxargs: Tack! Mycket intressant läsning. :tumupp:

Och jajjamensan, med ps x ser jag att scriptet körs.



Så alltså, i Raspian (Raspberry Pi-portad Debian) :


För att köra: sudo nohup ./scriptnamn.py &

Då kan man logga ut och logga in igen.
För att se så det fortfarande då körs: sudo ps x

För att 'stoppa': Leta upp rätt PID-nr och skriv: sudo kill nr
("nr" ersätts alltså av PID-nummret.)


Parentes:
I mitt fall måste jag ha med "sudo" eftersom det inte går att logga in på root-kontot via SSH, som jag kör med.
Det behövs även för att mitt script pratar med hårdvara som en vanlig användare inte kommer åt.
sodjan
EF Sponsor
Inlägg: 43241
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: raspberry starta python script vid boot

Inlägg av sodjan »

> men det finns ju inget som hindrar att scriptet körs en gång per minut sedan datorn startas.

Inte i princip, men eftersom det är ett Python script så får man en laddning
och initiering av Python miljön varje gång. Kanske lite onödigt om man ändå
vill att något ska göras varje minut, då kan det lika gärna ligga igång.

> Med crontab så kan du bara starta det.

Det är väl inget som hindrar att cron startar det vid en tidpunkt
och stoppar det vid en annan. Om man nu vill göra just det.

> ...men vad händer om cron av nån anledning inte körs?

Då kanske man har större problem och det är inte lika viktigt
att Python scriptet körs just då. Det beror ju lite på vad det görs.
Men om inte cron körs så lär man ha större problem... :-)
Nerre
Inlägg: 27168
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: raspberry starta python script vid boot

Inlägg av Nerre »

Men kör du det från init-script så körs alla de som root så där behöver du inte ha med sudo.


Sen om ditt script pratar med hårdvara som ligger under /dev/ så går det ju att ändra rättigheter där. Typexemplet är modem, där det oftast finns en grupp i systemet som heter modem eller dialout som har skrivrättigheter till de devices som är modem.

http://unix.stackexchange.com/questions ... thout-root

Problemet är ju att det som ligger under /dev inte är vanliga filer, mycket som ligger där skapas dynamiskt vid boot och det innebär att om du ändrar rättigheter eller ägare så försvinner de vid omstart. Då får man använda udev för att sätta rätt ägare och rättigheter när devicen skapas.

http://reactivated.net/writing_udev_rul ... #ownership
Nerre
Inlägg: 27168
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: raspberry starta python script vid boot

Inlägg av Nerre »

sodjan skrev:
Det är väl inget som hindrar att cron startar det vid en tidpunkt
och stoppar det vid en annan. Om man nu vill göra just det.
Nej, men det jag menar är att med init-script så kan man köra kommandon som:

service <my_service> start
service <my_service> stop
service <my_service> restart

Istället för att sitta och köra ps x och leta efter PID och köra kill och krångel.
Skriv svar