我认为这个问题对于从Raspbian Wheezy更新到Jessie的其他Raspberry-Pi用户也很有用。 带有Tkinter GUI的python程序在Wheezy重启后启动,但不在Jessie上启动。 互联网中描述的所有方法都不适合我。 我做了以下事情:
sudo nano /etc/rc.local
在最后一行(在“退出0”之前)添加以下行:
/etc/init.d/cron/start
这会强制crontab在重启时启动。 之后调用了crontab窗口:
sudo crontab -e
添加以下行:
@reboot /home/pi/starter.sh >/home/pi/logs/cronlog 2>&1
这应该在重新启动时执行名为starter.sh的脚本,并在cronlog文件中记录错误。 starter.sh脚本:
#!/bin/bash
sudo python /home/pi/TkinterGUI.py
使这个脚本可执行:
chmod +x /home/pi/starter.sh
检查文件属性 - 是,可执行文件。从命令行'/home/pi/starter.sh'执行此脚本使我的TkinterGUI程序启动。重启没发生什么事吗? cronlog看起来像这样:
Traceback (most recent call last):
File " TkinterGUI.py", line 354, in <module>
root = Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1813, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
显示相同,唯一的区别是手动启动或重启时自动启动。问Google没有给出可用的答案。我不做远程访问;我的键盘和显示器直接连接到Raspberry。