树莓派设置开机自启动程序

树莓派设置开机自启动程序

1、普通程序
方法一:向rc.local文件添加启动代码

sudo nano /etc/rc.local

在exit0之前添加想要执行的文件,su表示获取权限,-c表示执行结束后恢复权限,&表示后台运行

su pi -c "bash /home/pi/WorkSpace/FaceDetection/detection_auto.sh &"

方法二:通过桌面启动
在终端分别输入以下命令

mkdir .config/autostart
nano .config/autostart/testboot.desktop

文件中添加以下内容

[Desktop Entry]

Type=Application

Exec=/home/pi/WorkSpace/FaceDetection/detection_auto.sh

其中Exec表示你想要执行的sh文件
3、其他方法
我只用过以上两种,其他可参考该文章树莓派程序开机自启动方法总结
2、需要其他硬件或依赖的程序
有的程序需要摄像头等硬件资源,有的程序会循环,有的程序需要在有终端时才能执行。这时候采用上面的方法可能就不够用。
参考过这篇文章树莓派开机程序自启动的2种方案!
1、在.profile文件(开机时启动)末尾输入

sleep 4
lxterminal

树莓派开机时便会执行lxterminal命令,自动开启一个新的终端
2、在.bashrc文件(终端开启时自动执行)输入想要执行的程序

bash /home/pi/WorkSpace/FaceDetection/detection_auto.sh &

这样每次打开终端的时候都会执行一次这个文件

但是这样做发现程序确实执行了,但是桌面和其他内容都还没有加载出来。把sleep时间延长也同样是黑屏而没有桌面显示,只有摄像头和打开的终端。

可以将第一步自动打开终端的操作改到rc.local或桌面自启动时执行。
桌面自启动时自动打开终端的设置步骤如下:
1、/home/pi下创建terminal.sh文件,内容如下

#!/bin/sh
lxterminal

2、创建自启动文件

mkdir .config/autostart
nano .config/autostart/testboot.desktop

文件中添加以下内容

[Desktop Entry]

Type=Application

Exec=/home/pi/terminal.sh

3、在.bashrc文件(终端开启时自动执行)输入想要执行的程序

bash /home/pi/WorkSpace/FaceDetection/detection_auto.sh &

但是VNC开启程序在后面,所以如果没有屏幕的化,无法通过VNC观察,可以通过把sleep时间延长来解决。

你可能感兴趣的:(笔记)