Bricolage

Ubuntu Tutorial: How to launch a GUI from cron in Ubuntu

On Sunday, I spent a good half-hour with Google learning how to launch a GUI application in Ubuntu using cron. I wanted to write a brief post here explaining the process so as to help another weary Googler more quickly on their way.

My situation is this: I use a nifty little flashcard-like study program called Mnemosyne. I use it to study foreign languages and for school. Ideally I should run it daily – but I often forget, which slows my learning. So I decided to create a cron job which would run the program every day at 7 AM.

Using the normal crontab syntax I made this entry:

0 7 * * * mnemosyne

This, I thought, would run mnemosyne once a day at 7 AM. Unfortunately I was wrong. After much searching around I found the solution on the Ubuntu forums (always a great resource). My problem was that because cron doesn’t run in the X session (The program that controls all GUIs in Linux), when you try to run a GUI program, cron doesn’t know where to start it. To tell cron where to start the GUI, I changed my crontab entry as follows:

0 7 * * * export DISPLAY=:0 && /usr/bin/mnemosyne

And finally success!

The post on the Ubuntu Forums I found explains all this and more and gives a number of examples.

Also, for those wanting a more general tutorial on crontab syntax, see the crontab article on wikipedia.

Posted May 1, 2007
READ THIS NEXT:

Hosting static sites with Docker and Nginx

For most of its life, this blog has run on Drupal. But as I no longer do Drupal development, maintaining (and even using) Drupal feels like more and more of a burden. So like the other cool kids on...


Kyle Mathews lives and works in San Francisco building useful things. You should follow him on Twitter

blog comments powered by Disqus