[Ubuntu] automatisch opstarten script werkt niet

Pagina: 1
Acties:

  • Poecillia
  • Registratie: Januari 2002
  • Laatst online: 22-09 23:38
Ik heb een programma en een script dat ik bij boot van mijn RPI met Ubuntu mate automatisch wil laten opstarten. Helaas lukt dit niet ondanks dat ik e.e.a. heb uitgezocht en het op verschillende manieren heb geprobeerd. Het programma en het script werken prima als ze vanuit de terminal opstart met:
~/Downloads/./spotifyd.bin
~/Music/./4way2.sh

Ik heb de volgende mogelijkheden geprobeerd:
- opnemen in rc.local
- toevoegen aan startup applications
- toevoegen aan crontab -e met @reboot

Het script start met #!/bin/bash wat kennelijk een voorwaarde is.

  • Kabouterplop01
  • Registratie: Maart 2002
  • Laatst online: 28-09 20:41

Kabouterplop01

chown -R me base:all

en hoe ziet het eruit in je cron? Wat zegt je logging?

Acties:
  • 0 Henk 'm!

  • ray0755
  • Registratie: Juni 2010
  • Laatst online: 03-09 13:34
Klinkt alsof het iets te maken heeft met paths, cron voert het script niet uit als <user>, maar met de permissies van <user>, maar de gebruikte paths zijn niet hetzelfde.

Probeer eens absolute paden in cron te zetten, dus geen "~", cron heeft namelijk geen home directory, en als dat wel zo was staat jouw script/bin daar niet in.

Andere mogelijkheid is om de locatie van jouw scripts toe te voegen in cron met PATH.

[ Voor 22% gewijzigd door ray0755 op 25-02-2018 16:53 ]


Acties:
  • 0 Henk 'm!

  • jan99999
  • Registratie: Augustus 2005
  • Laatst online: 26-09 13:54
In het begin van de stript eerst een pauze zetten, zodat de pc verdere kan opstarten, en dan pas de script verder afloopt.
Dacht
sleep 20

Acties:
  • 0 Henk 'm!

  • NLMaca
  • Registratie: Maart 2015
  • Laatst online: 18:54
paar vragen:
- zijn je scripts afhankelijk van services die moeten draaien (maar die mogelijk nog niet gestart zijn)?
- als welke user moeten de scripts starten?

zet je paden compleet neer. Verander USER naar die van de betreffende pi/ubuntu user

script: /home/USER/runme.sh
code:
1
2
3
4
5
6
#!/bin/bash

#wacht 30 sec totdat services gestart zijn
sleep 30
cd /home/USER/Downloads; ./spotifyd.bin
cd /home/USER/Music; ./4way2.sh


cronjob:
code:
1
@reboot cd /home/USER/; bash runme.sh


Het kan dus zijn dat je scripts afhankelijk zijn van een service die eerst gestart moet zijn. In de meeste gevallen is dit bij een reboot nog niet het geval. dus of:
- een timeout erin zetten
- checken of de betreffende service online is, dan pas je scripts starten