Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: JJK - 23.06.16 - klo:10.05
-
Olen tehnyt Lubuntu 16.04:een forumilla olevista ohjeista scriptin joka hakee Forecan sääennusteen ja liittää sen taustakuvaan.
Komentoriviltä ajettaessa scripti toimii mutta kun laitan cronin ajamaan sen tasatunnein niin taustakuva ei päivity. Noutaa kyllä kuvat ja liittää ne.
Tämä scriptin rivi asettaa taustakuvan
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
crontab -e
0 * * * * /home/user/.taustakuva/saaforeca.sh
Eikö tuo cron ajetakkin user käyttäjänä?
Ihan kuin cron ei tietäisi kenen taustakuva päivitetään.
-
Olen tehnyt Lubuntu 16.04:een forumilla olevista ohjeista scriptin joka hakee Forecan sääennusteen ja liittää sen taustakuvaan.
Komentoriviltä ajettaessa scripti toimii mutta kun laitan cronin ajamaan sen tasatunnein niin taustakuva ei päivity. Noutaa kyllä kuvat ja liittää ne.
Tämä scriptin rivi asettaa taustakuvan
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
crontab -e
0 * * * * /home/user/.taustakuva/saaforeca.sh
Eikö tuo cron ajetakkin user käyttäjänä?
Ihan kuin cron ei tietäisi kenen taustakuva päivitetään.
Varmistuksena että eihän crontabissa oikeasti ole polussa user vaan sen tilalla jk ? Eli näin:
0 * * * * /home/jk/.taustakuva/saaforeca.sh
Onhan saaforeca.sh tiedostolla suoritusoikeudet?
chmod +x /home/jk/.taustakuva/saaforeca.sh
Laita koko skripti näkyville, vika voi olla siinäkin.
-
Crontabissa on oikea polku. Tuli äpähuomiossa kopioitua eräänlaisista muistiinpanoista.
0 * * * * /home/jk/.taustakuva/saaforeca.sh
Tässä vielä scripti
#!/bin/bash
wget -q -O /home/jk/.taustakuva/Kiiminki-saa.png http://www.foreca.fi/meteogram.php?loc_id=100652858&lang=fi
sleep 5
convert /home/jk/.taustakuva/Kiiminki-saa.png -density 300 -quality 100 -trim -bordercolor white -border 5 -bordercolor none -border '10x35' /home/jk/.taustakuva/Kiiminki-saa.png
convert /home/jk/.taustakuva/lines-wallpaper_1920x1200.png /home/jk/.taustakuva/Kiiminki-saa.png -gravity SouthEast -composite -format png -quality 100 /home/jk/.taustakuva/saa.png
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Scriptille on annettu suoritusoikeudet kaikille.
Annoin vielä varalta tämän
chmod +x /home/jk/.taustakuva/saaforeca.sh
Mutta taustakuva ei päivity cronilla.
-
....
Mutta taustakuva ei päivity cronilla.
Eli kuvan aikaleima ei muutu, mutta kun ajat skriptin käsin, niin päivittyy?
Kuinkahan usein tuo kuva muuten päivittynee forecan sivulla.
-
Siis kuvat kyllä päivittyy. Mutta tämä rivi ei vaihda taustakuvaa cronilla ajettaessa
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
-
Siis kuvat kyllä päivittyy. Mutta tämä rivi ei vaihda taustakuvaa cronilla ajettaessa
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Tuolla kerrotaan, mikä se taustakuva on. Onko siihen mahdollista lisätä jotain "reload" -parametria?
-
Ainakin variety (https://launchpad.net/variety) kykenee vaihtamaan taustakuvan automaattisesti.
-
Eikö tuo cron ajetakkin user käyttäjänä?
Ihan kuin cron ei tietäisi kenen taustakuva päivitetään.
Cronin kautta ajettuna skripti ei saa mitään X-palvelimeen tai työpöytäympäristöön liittyviä ympäristömuuttujia, ja muiden työpöytäohjelmien tapaan pcmanfm kaipaa todennäköisesti DISPLAY-muuttujaa. Kokeile näin:
DISPLAY=:0.0 pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
-
Cronin kautta ajettuna skripti ei saa mitään X-palvelimeen tai työpöytäympäristöön liittyviä ympäristömuuttujia, ja muiden työpöytäohjelmien tapaan pcmanfm kaipaa todennäköisesti DISPLAY-muuttujaa. Kokeile näin:
DISPLAY=:0.0 pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Hienoa.
Jotain tälläistä ajattelinkin mutta en tajunnut sen liittyvän DISPLAYhin.
Kiitos.
Nyt toimii.
-
Avataas tämä vanha aihe uudelleen.
Jokin aika sitten päivitysten jälkeen scripitin suorituksesta avautuu aina uusi virhe-ikkuna: Työpöydänhallinta ei ole käytössä
Eikä työpöydäntaustakuva päivity.
Virhe tulee display muuttujasta DISPLAY=:0.0
Mistä asiaa vois tarkemmin tutkia?
-
Avataas tämä vanha aihe uudelleen.
Jokin aika sitten päivitysten jälkeen scripitin suorituksesta avautuu aina uusi virhe-ikkuna: Työpöydänhallinta ei ole käytössä
Eikä työpöydäntaustakuva päivity.
Virhe tulee display muuttujasta DISPLAY=:0.0
Mistä asiaa vois tarkemmin tutkia?
Kuulostaa ennemmin siltä, että pcmanfm ei vain onnistu asettamaan taustakuvaa, koska se ei vastaa työpöydän taustan piirtämisestä. Vai toimiiko tämä komento päätteessä ajettuna herjaamatta tuota samaa?
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
-
Kuulostaa ennemmin siltä, että pcmanfm ei vain onnistu asettamaan taustakuvaa, koska se ei vastaa työpöydän taustan piirtämisestä. Vai toimiiko tämä komento päätteessä ajettuna herjaamatta tuota samaa?
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Toimii päättessä herjaamatta virheistä.
-
Ok. Mikä DISPLAY siellä sitten on käytössä, jos tarkistat päätteessä:
echo $DISPLAY
Kokeile samaa arvoa cronjobissa.
-
echo $DISPLAY
:0.0
Sama näyttäs vielä olevan.
Tämäkin toimii samoin.
export DISPLAY=:0.0
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
Jos tuon scriptin ajaa itse päätteessä niin toimii hyvin. Mutta miksi cronilla ei toimi??
-
Ilmeisesti muuttunut versiopäivitysten myötä niin, että myös ympäristömuuttujat XDG_RUNTIME_DIR (ja ehkä XAUTHORITY) tarvitaan:
https://stackoverflow.com/questions/45873124/pcmanfm-set-wallpaper-fails-on-raspbian-stretch-in-cron
I had exactly the same issue, except I am running Lubuntu 17.04. It appeared lately after a recent update, though cannot pinpoint when. After lot's of research I became suspicious that one of the XDG enviromental variables must be exported too. Following some trial and error, I found that exporting XDG_RUNTIME_DIR solved the problem for me. You may want to give it a try.
To figure out the value run: echo $XDG_RUNTIME_DIR
The working wallpaper changer running from cron for me now looks like:
#!/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/krisz/.Xauthority
export XDG_RUNTIME_DIR=/run/user/1000
pcmanfm --set-wallpaper=${dir}/${file} --wallpaper-mode=crop
-
Kiitti taas paljon nm
Näillä toimii:
export DISPLAY=:0.0
export XDG_RUNTIME_DIR=/run/user/1000
pcmanfm --set-wallpaper=/home/jk/.taustakuva/saa.png --wallpaper-mode=fit
XAUTHORITY ei näytä tarvivan.
-
Sorry JJK, että sekaannun tähän ketjuun, mutta miten tuon Forecan location id saa selville?
Laitoin nimittäin itselleni tämän ketjun innoittamana saman. Hyvin toimii, mutta paikkakunta ei täsmää.
-
Näyttää muuttuneen sivustokin jotenkin siitä, kun minä omani tein.
Mutta etsi paikka ja "+lisää omasäähän"
Omasää näkyy pienessä ruudussa ja sen alaosassa on poistalinkki.
Mene linkin päälle niin näet osoitteen
Minulla "http://www.foreca.fi/Finland/Kiiminki?rem=100652858"
-
Kiitos JJK. Nyt toimii kotipaikkakunnan sääennuste.