https://blog.csdn.net/weixin_41957211/article/details/122513556
二、带图像界面的自启动脚本
一开始以为这种脚本和一般脚本一样,直接用rc.local这种系统服务自启即可,在自启动运行摄像头显示程序时,运行不成功,用 sudo systemctl state rc-local 查询状态也看不出个所以然,我就一段一段注释,发现是 cv.imshow()这个函数引起的程序崩溃。网上有说法是rc.local 是在桌面加载之前启动的。于是新建一个用户服务
1、新建 /usr/lib/systemd/user/imgshow.service
cd /lib/systemd/user/ #切换路径 sudo gedit imgshow.service #新建编辑service文件
将下列代码复制进去
[Unit] Description=imgshow demo # 服务名字为imgshow [Service] Type=forking # 该服务为后台运行 ExecStart=/usr/bin/imgshow.sh #开始方式为执行imgshow.sh [Install] WantedBy=multi-user.target # 多用户
2、建立 /usr/bin/imgshow.sh文件 要执行的骄傲本
cd /usr/bin/ sudo gedit imgshow.sh
复制下列代码进入
#!/bin/bash #shell脚本必须包含的解释器路径 #以下添加自己的启动命令 echo mypassword|sudo -S python3 /home/mypath/videotest.py & #获取root权限运行videotest.py
3、更改权限
sudo chmod +x /lib/systemd/user/imgshow.service sudo chmod +x /bin/usr/imgshow.sh
4、启用服务并建立软连接
ln -s /lib/systemd/usr/imgshow.service /etc/systemd/system/ sudo systemctl enable imgshow sudo systemctl start imgshow.service