Load python program with gui after boot in Debian

I am running Debian on a BBB. I have written a simple python program to monitor temperatures and control relays based on the readings. It is critical for the program to run at all times, and therefore to start after boot, in case of power failures. I use Tkinter to open a window that displays the temperatures. When I just run the program it works fine. When I use cron to start it, either at reboot, or at scheduled times, I can hear the relays click during the startup portion of the program, but then it quits, and the display window never opens. I’m not sure how to debug since it works when its not started by cron.

You did not say which version of Debian you are running.
Debian 7 uses a combination of systemd and init to sequence things at startup.
Debian 8 (jessie) is moving to a mostly pure systemd environment.

Under chron you are probably starting it too soon, and violating some dependencies
for Python or your program (like some buses drivers not yet being initialized.)

I suggest you read up on systemd. You basically make your program another
system “service” on the BBB. You can control the startup sequence,
and delay for named dependencies to be fulfilled, or set it to a fixed number of seconds after
the BBB starts booting. Many options for starting things.

— Graham