script als cron job werkt niet, hulp zeer welkom!

Ernie
Premium Member
Premium Member
Berichten: 700
Lid geworden op: 08 Jun 2011
Bedankt: 40 keer
Recent bedankt: 3 keer
Uitgedeelde bedankjes: 181 keer

script als cron job werkt niet, hulp zeer welkom!

Berichtdoor Ernie » 09 Sep 2020, 23:37

Ik gebruik een RPi met 7" touchscreen als dashboard voor HA, LMS en een weer widget.
Door HTML tabs te gebruiken en iframes kan dat in chromium in kiosk mode om op die manier zo veel mogelijk van het schermoppervlak over te hebben.
Nu dacht ik een taak te plannen die iedere nacht chromium sluit en terug opstart.

Het script om dat te doen werkt maar niet als cron job en ik kan de reden niet vinden, dus alle hulp meer dan welkom.

Code: Selecteer alles

#! /bin/bash
pkill -o chromium
export DISPLAY=:0
"/usr/bin/chromium-browser" --kiosk --disable-pinch --noerrdialogs --disable-infobar$&

cron job

Code: Selecteer alles

23 35 * * * /bin/sh /home/pi/kiosk.sh

CCatalyst
Elite Poster
Elite Poster
Berichten: 3732
Lid geworden op: 20 Jun 2016
Bedankt: 299 keer
Uitgedeelde bedankjes: 17 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor CCatalyst » 10 Sep 2020, 00:22

Geen idee wat die $& daar doet. En ik zou pkill ook in een absolute path zetten, ook al weet cron in theorie waar die staat.

Soit, check log: /var/log/cron

==

Als je daar niets wijzer uit raakt, dan de output bekijken, op het einde van cron commando dit zetten: >> /home/pi/output.log 2>&1

ik zou daarna ook nog touch /home/pi/output.log doen en zet dat bestand daarna op chmod 777

Eenmaal de cron gedraaid zou moeten hebben, dat bestand bekijken

==

Je kan ook het script testen in dezelfde environment als cron

in je cron dit zetten (veronderstellend dat het je gebruikers cron is en niet de globale): * * * * * env > ~/environment

eenmaal die cron dan gedraaid heeft (na de volgende minuut), dit uitvoeren onder die gebruiker: env - `cat ~/environment` /bin/sh

en dan zit je in een shell met dezelfde environment als cron. Probeer je script daarin te draaien en check voor foutmeldingen. Indien geen foutmeldingen ligt het aan andere verschillen (vb gebrek aan interactiviteit).

Niet vergeten om exit uit de shell met die environment te doen, en ook die cronjob van hierboven niet vergeten te verwijderen achteraf.

brubbel
Elite Poster
Elite Poster
Berichten: 787
Lid geworden op: 04 Jul 2012
Bedankt: 162 keer
Recent bedankt: 1 keer
Uitgedeelde bedankjes: 50 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor brubbel » 10 Sep 2020, 09:31

xauth probleem omdat chron jobs als andere user worden uitgevoerd?

liber!
Premium Member
Premium Member
Berichten: 730
Lid geworden op: 09 Apr 2006
Twitter: nathan_gs
Bedankt: 52 keer
Uitgedeelde bedankjes: 109 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor liber! » 10 Sep 2020, 17:46

Werkt er wel een cron deamon?

Gebruik je systemd of xinit?

Ps.
"#! /bin/bash" hoort geen spatie te zitten, maar dat is alvast niet het probleem.

Gebruikersavatar
Trojan
Elite Poster
Elite Poster
Berichten: 3228
Lid geworden op: 13 Aug 2009
Locatie: Kontich
Bedankt: 241 keer
Uitgedeelde bedankjes: 112 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor Trojan » 10 Sep 2020, 18:18

Volgens mij is het redundant om enerzijds een shebang "#!" te gebruiken in je script, en dan nog eens expliciet

Code: Selecteer alles

/bin/sh
aan te roepen in je cron job.
In de eerste plaats zorgt de shebang er voor dat je net geen bash of sh moet aanroepen.

Also, uw cron tijden kloppen volgens wikipedia niet.

Code: Selecteer alles

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>


Dat strookt niet echt met hetgeen jij hebt opgegeven:

Code: Selecteer alles

23 35 * * * /bin/sh /home/pi/kiosk.sh


Pas dat eens aan naar het volgende:

Code: Selecteer alles

35 23 * * * /home/pi/kiosk.sh
De posts van deze gebruiker weerspiegelen op geen enkel moment de mening van Belgacom NV/SA.

CCatalyst
Elite Poster
Elite Poster
Berichten: 3732
Lid geworden op: 20 Jun 2016
Bedankt: 299 keer
Uitgedeelde bedankjes: 17 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor CCatalyst » 10 Sep 2020, 18:19

Ja het zal idd dat wel zijn :-D Had er ook over gekeken.

Dat gezegd zijnde, als ik het lijntje van OP in m'n cron probeer te zetten, word ik meteen terechtgewezen met een "/tmp/crontab.pKVOMz":1: bad hour; errors in crontab file, can't install." Heeft OP dan niet iets soortgelijks gekregen?

Ordon
Pro Member
Pro Member
Berichten: 443
Lid geworden op: 27 Apr 2019
Bedankt: 42 keer
Uitgedeelde bedankjes: 22 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor Ordon » 11 Sep 2020, 01:11

Indien met bash scripts wil uitvoeren via cron: waarom niet al je omgeving goed zetten in cron?
En dan nog liefst de volledige path naam gebruiken van execs, log bestanden, etc

# crontab -e
SHELL=/bin/bash
[email protected]
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

# backup using the rsbu program to the internal 4TB HDD and then 4TB external
01 01 * * * /usr/local/bin/rsbu -vbd1 ; /usr/local/bin/rsbu -vbd2

# Set the hardware clock to keep it in sync with the more accurate system clock
03 05 * * * /sbin/hwclock --systohc

# Perform monthly updates on the first of the month
# 25 04 1 * * /usr/bin/dnf -y update


Ernie schreef:cron job

Code: Selecteer alles

23 35 * * * /bin/sh /home/pi/kiosk.sh

Nu ga je een bash script uitvoeren via /bin/sh ...

CCatalyst
Elite Poster
Elite Poster
Berichten: 3732
Lid geworden op: 20 Jun 2016
Bedankt: 299 keer
Uitgedeelde bedankjes: 17 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor CCatalyst » 11 Sep 2020, 12:46

Ordon schreef:Nu ga je een bash script uitvoeren via /bin/sh ...


Zal in casu wel gewoon werken vermoed ik.

Ordon
Pro Member
Pro Member
Berichten: 443
Lid geworden op: 27 Apr 2019
Bedankt: 42 keer
Uitgedeelde bedankjes: 22 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor Ordon » 11 Sep 2020, 21:32

Mogelijks, ja, maar het lijkt me opportuun om de TS een beetje meer wegwijs te maken.
Ik heb zeker niet de intentie om iemand met de vinger te wijzen, of zo.
In moderne linux distributies is /bin/sh vaak een link naar /bin/bash (of /bin/dash).
Maar dat wil niet zeggen dat het aanroepen van /bin/sh hetzelfde is als /bin/bash aanroepen...

If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well.
Bron: bash(1) man page

Zo zal de bash specifieke syntax:

Code: Selecteer alles

exec  > >(tee logfile.txt)

fouten geven indien de shell begint met #!/bin/sh alhoewel er een softlink is sh->bash.
Bash gedraagt zich dan "zoveel mogelijk" als sh ...
En ja, dat geeft soms erg onverwachte resultaten. :wink:

Edit: ik zie net dat het script start met "#! /bin/bash". Dat moet alvast "#!/bin/bash" zijn, zonder spatie dus.

Ernie
Premium Member
Premium Member
Berichten: 700
Lid geworden op: 08 Jun 2011
Bedankt: 40 keer
Recent bedankt: 3 keer
Uitgedeelde bedankjes: 181 keer

Re: script als cron job werkt niet, hulp zeer welkom!

Berichtdoor Ernie » 20 Sep 2020, 11:15

Thanks guys, het werkt!
Het was dus idd het omkeren van die minuten/uren... :oops:
De rest dan ook maar opgekuist.

Ik heb geen ervaring met cron en bitter weinig met bash waardoor ik dus dingen heb samengeraapt; vandaar dat ik bv '/bin/sh' ertussen had gezet zonder te weten wat ik eigenlijk deed.


Terug naar “Non-Windows”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast