百度上很多方法,呵呵,都是扯淡淡,被坑了一晚上,还是谷歌靠谱。
下面进入正题:
创建文件加autostart
mkdir ~/.config/autostart
sudo vim ~/.config/autostart/myprogram.desktop
然后输入下面命令
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=myprogram
Exec=lxterminal -e bash -c 'python3 /home/pi/Desktop/test.py;$SHELL'
Terminal=true
其中python3 /home/pi/Desktop/test.py
为需要执行的代码,使用时替换成自己需要的执行的命令即可,注意不要删掉前面的'
和后面的;
,$SHELL
是为了保证打开的终端会一直显示,如果删掉的话执行该句代码后就会kill掉这个进程,等于程序没有执行。
最后设置权限:
sudo chmod a+r ~/.config/autostart/myprogram.desktop
自己调试过程中发现的注意事项:
- 这个代码执行的速度过快,如果需要连网发送数据的话,会出现网络错误的提示,因此我在python3的代码起始部分添加了
time.sleep(30)
命令,让程序等待30s再执行,确保可以连接到网络。 - 执行自己输入的代码时,系统处于根目录,相当于新打开了一个终端,没有进行cd操作,所以代码里面使用相对路径的话可能会出错,比如打开
Desktop/test.png
的图片,这个时候最好使用绝对路径/home/pi/Desktop/test.png
。