Cannot run a GUI app from cron

I think this is the issue:

* * * * * env DISPLAY=:0.0 /usr/bin/gnome-calculator

Setting to it to this seems to work:

* * * * * env DISPLAY=:0 /usr/bin/gnome-calculator

The env DISPLAY=:0 tells it to to export to the display :0 - you can find yours under TTY in the output of w

Then run crontab -e as your normal user where you want the application to run, and paste in this line:

* * * * * env DISPLAY=:0 /usr/bin/gnome-calculator

If you don't want to to crontab -e to edit it using vim, run this beforehand to use nano instead:

export EDITOR=nano ; export VISUAL=nano

Note the asterisks means it will run every minute, every hour and every day, so it will probably get VERY annoying unless you remove it.

If it still does not work, try running this command:

sudo bash -c "echo $(whoami) > /etc/cron.allow"

And, if you don't want to muck around with text files, you can use gnome-schedule instead.

References:

  • https://help.ubuntu.com/community/CronHowto

Rewritten as an answer per OP's request.

It's probably not a good idea to put this in the root crontab un the first place. Have you tried putting it un your user crontab?


Cron running under root does not have access to display if the current x user is not root.

We just need to add root user to x, you can do it at login time with a startup script

xhost local:root

For test purpose we can just run than command under current user and relaunch the root cron job

Tags:

Cron

Xorg