树莓派设置开机自启动程序
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时间延长来解决。