[crontab, scrot] automatisch screenshots maken lukt niet

Pagina: 1
Acties:

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12-12-2025
Na gisteren een aantal uur geprobeerd te hebben, geef ik de moed op en vraag jullie hulp in.

Wat wil ik:
Gewoon om de 5 minuten een screenshot maken.

Wat heb ik geprobeerd:
code:
1
crontab -e

en dan gewoon
code:
1
* * * * * /usr/bin/scrot /home/user/screen.png

Werkt niet! (Wel met een extra lege regel geprobeerd)

Toen geprobeerd in een script te zetten:
code:
1
2
3
#!/bin/bash
echo "testing!" >> test.log
/usr/bin/scrot /home/user/screen.png

code:
1
* * * * * /home/user/screen

De echo regel staat erbij om te kijken of het wel werkt. De echo werkt prima. Echter scrot niet. De file is natuurlijk ook executeable gemaakt

Wat doe ik verkeerd?

And Bob's your uncle ...


  • DusHmaniac
  • Registratie: Oktober 2001
  • Laatst online: 07-09-2022

DusHmaniac

Boe!

cron jobs worden in een nieuwe shell gestart, die geen toegang hebben tot je X sessie. daarom kan dit niet werken op deze manier. wat je zou kunnen doen is je scriptje aanpassen door een loopje te maken met een sleep erin en dat scriptje in de background laten lopen.

[ Voor 0% gewijzigd door DusHmaniac op 25-05-2008 13:09 . Reden: heeft -> hebben :) ]

All your base are belong to Chuck Norris


  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 06-01 19:09
Heeft het script schrijfrechten op /home/user/screen.png

Taaaa taa taa taaaa taa taa ta taaataaaaa.


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12-12-2025
DusHmaniac schreef op zondag 25 mei 2008 @ 13:09:
cron jobs worden in een nieuwe shell gestart, die geen toegang hebben tot je X sessie. daarom kan dit niet werken op deze manier. wat je zou kunnen doen is je scriptje aanpassen door een loopje te maken met een sleep erin en dat scriptje in de background laten lopen.
Klinkt bijzonder aannemelijk, maar waarom zie ik dan wel her en der voorbeelden van dat het zou moeten kunnen. En heb je misschien een alternatief, ander programma ofzo, anders maak ik het script zo zoals je zegt

And Bob's your uncle ...


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 23:23

deadinspace

The what goes where now?

Cron mailt de output van commando's die hij uitvoert, dus controleer je mail op die machine eens. Als het goed is heb je daarin een stel mailtjes, waarschijnlijk met als inhoud iets a la:
scrot: Can't open display:

Dat komt omdat - zoals DusHmaniac al terecht opmerkte - die shell niet weet hoe hij bij je X sessie komt. Dat kun je hem vertellen door de environment variable DISPLAY te setten naar het adres naar je X sessie (hoogstwaarschijnlijk :0 ). Hoe dat moet staat vast wel in de crontab manpage ;)

  • Firestone
  • Registratie: Augustus 2001
  • Laatst online: 29-05-2025

Firestone

$ su - vuursteen

Probeer eens iets in de trant van
code:
1
 * * * * * export DISPLAY=:0 && /usr/bin/scrot /home/user/screen.png


IIRC zorgt dit ervoor dat het in je X server gestart wordt.

  • DusHmaniac
  • Registratie: Oktober 2001
  • Laatst online: 07-09-2022

DusHmaniac

Boe!

dat zou inderdaad ook moeten kunnen werken

All your base are belong to Chuck Norris


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12-12-2025
Firestone schreef op zondag 25 mei 2008 @ 13:40:
Probeer eens iets in de trant van
code:
1
 * * * * * export DISPLAY=:0 && /usr/bin/scrot /home/user/screen.png


IIRC zorgt dit ervoor dat het in je X server gestart wordt.
Taart voor iedereen. Het werkt! Mooi samenspel ;)

And Bob's your uncle ...

Pagina: 1