Avatar billede Zeebaah Praktikant
09. januar 2014 - 13:10 Der er 7 kommentarer og
1 løsning

Autostart af script

Hej jeg er ved at lave noget styring af mit piFace på min raspberry pi.

har fået lavet et script som læser fra en database med hvilke udgange den skal have åbne...

Hvordan kan jeg få det script til at starte op automatisk?

Jeg har forsøgt at følge http://xmodulo.com/2013/01/how-to-automatically-start-program-on-boot-in-debian.html

og så i stedet for at have
echo "Starting foobar"
har jeg python sql.py

Håber der er nogen som kan hjælpe

Så jeg ved ikke hvad det er jeg gøre forkert, skal min sql.py også ligge inde i /etc/init.d/ ?
Avatar billede repox Seniormester
09. januar 2014 - 13:27 #1
Jeg skal bare lige være sikker - er det et script du vil eksekvere som afslutter sig selv når du er færdig?

Eller er det en daemon skrevet i Python som skal køre vedvarende imens Linux kører?
Avatar billede lassebm Nybegynder
09. januar 2014 - 13:46 #2
LSBInit

https://wiki.debian.org/LSBInitScripts

Jeg har bla. et perl script som jeg starter således ved boot

#!/bin/sh

### BEGIN INIT INFO
# Provides:          cactimail
# Required-Start:    $local_fs $syslog
# Required-Stop:    $local_fs $syslog
# Default-Start:    2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: cacti mail parser
# Description:      log info parser for cacti monitoring system.
### END INIT INFO

/usr/bin/perl /usr/share/cacti/site/scripts/cactimail.pl daemon
Avatar billede Zeebaah Praktikant
09. januar 2014 - 14:28 #3
Mit Python script køre i en Løkke og skal helst køre konstant.
Avatar billede repox Seniormester
09. januar 2014 - 14:31 #4
Så er spørgsmålet om det ikke var bedre at køre det i Supervisor, som så også pr. automatik genstarter dit script, såfremt det crasher?

Det kan også starte scriptet for dig ved boot.
Avatar billede Zeebaah Praktikant
09. januar 2014 - 14:50 #5
Det lyder smart, hvordan gøre man det? :)
Avatar billede lassebm Nybegynder
09. januar 2014 - 15:13 #6
Jeg har læst det som det skal starte ved boot. Hvis det ikke er meningen så se bort fra mit svar.
Avatar billede Zeebaah Praktikant
09. januar 2014 - 15:57 #7
Lassebm: undskyld har ikke lige fået set dit link endnu sidder på vej hjem i bussen :)
Avatar billede repox Seniormester
10. januar 2014 - 12:47 #8
Du kan læse mere om Supervisor og hvordan du installerer det her:
http://supervisord.org/

Det er egentlig ret simpelt.
Et eksempel på et job, som du så kan køre ville se sådan ud.

/etc/supervisor/conf.d/sqlpy.conf
[program:sqlpy]
command=/usr/bin/python /home/sti/til/sql.py
numprocs=1
user=den-bruger-på-maskinen-der-skal-køre-processen
process_name=%(program_name)s_%(process_num)s



Første linie er kommandoen der skal køres, anden linie er hvor mange processer du vil have aktiv - i dit tilfælde sikkert blot en enkelt.
Tredie linie er hvilken bruger (måske du bare skal køre den som root?)
Fjerde linie er navngivning af dit program (behøver du ikke rette) så du kan se status på din process med status kommandoen.

Ved boottime starter Supervisor selv op og starter de programmer som du har i /etc/supervisor/conf.d/

Det er megasmart.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester