当前位置: 首页 > news >正文

C++程序在开机自启和定时器执行时遇到的问题和解决方法

遇到的错误如下:

Camera is created.load vfvlog.[dll/so] failed for dll[/vfvlog.so] unexistedLoadDbgConfig, LoadFile fail, err:-3, errno: No such file or directoryqt.qpa.xcb: could not connect to displayqt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.Available platform plugins are: xcb.

主要是第四行和第五行的错误,分别为找不到display图形用户界面和找不QT插件库,其主要原因就是在开机自启和定时器执行时无法加载全局变量,导致设置的全局变量失效,主要解决方式是在要执行的脚本中设置环境变量,具体解决方案如下:

1、上传开机自启的脚本

将需要执行的脚本放到某个目录下,本项目放在了/root/Camera_Package目录下,执行的脚本如下:

#!/bin/shcurrent_user=$(whoami)echo "当前用户为:$current_user" >> /root/Camera_Package/Camera.log#export QT_DEBUG_PLUGINS=1#export QT_QPA_PLATFORM=xcbexport DISPLAY=192.168.2.188:0.0export LD_LIBRARY_PATH=/root/Camera_Package/lib/:$LD_LIBRARY_PATHexport QT_QPA_PLATFORM_PLUGIN_PATH=/root/Camera_Package/plugins/platformsif ! pgrep Camera > /dev/null; thenecho "Camera is not running. Starting Camera..."cd /root/Camera_Package/nohup ./Camera >> /root/Camera_Package/Camera.log 2>&1 &echo "Camera is created." >> /root/Camera_Package/Camera.logelseecho "Camera is running."echo "Camera is running." >> /root/Camera_Package/Camera.logfiexit 0

注意

a、注意要给脚本开可执行权限:chmod 777 corn-test.sh

b、本脚本内容中的export部分是指定环境变量,这是因为这部分不能放在全局变量中,在开机自启动脚本和定时器脚本中,是无法使用全局环境变量的,所以需要在当前执行脚本中指定变量路径。

其中DISPLAY变量是图形用户界面(GUI)应用程序变量,其对应的值为:hostname:display.screen分别代表主机名、显示号和屏幕号。例:export DISPLAY=192.168.2.188:0.0;

QT_QPA_PLATFORM_PLUGIN_PATH变量为QT库路径,改为自己的platform路径即可

3、设置开机自启

vim /etc/rc.local

再最后一行加上如下命令:

/root/Camera_Package/corn-test.sh

4、设置定时启动

执行命令:crontab -e

第一次添加定时器时会出现一个选择编辑器的选项,选择vim basic即可

然后在打开的定时器编辑窗口中加入以下命令

*/1 * * * * su - root -s /root/Camera_Package/corn-test.sh

重启cron:

service cron restart

说明:

在corn-test.sh脚本执行时,配置display对应的192.168.2.188电脑桌面会收到如下的提示,直接同意(是)即可。

http://www.lryc.cn/news/292241.html

相关文章:

  • R17 extended DRX(eDRX)
  • Debezium发布历史102
  • 探索自然语言处理在改善搜索引擎、语音助手和机器翻译中的应用
  • echarts:获取省、市、区/县、镇的地图数据
  • Java_简单模拟实现ArrayList_学习ArrayList
  • 动手学深度学习(一)深度学习介绍2
  • vmware网络配置,VMware的三种网络模式详解与配置
  • 【Ubuntu】安装hbase
  • ubuntu16.04环境轻松安装和应用opencv4.9.0(基于源码编译)
  • FastBee开源物联网平台2.0开源版发布啦!!!
  • 【NeRF和NLP】一些观察感悟,碎碎念
  • Python程序设计 基础数据类型
  • 浅谈安科瑞智能照明系统在马来西亚国家石油公司项目的应用
  • Java面对对象
  • 代码随想录算法训练营|day24
  • 嵌入式学习日记 16
  • 【Vue.js设计与实现】第一篇:框架设计概览-阅读笔记(完结)
  • 数据结构—动态查找表
  • Hbase-2.4.11_hadoop-3.1.3集群_大数据集群_SSH修改默认端口22为其他端口---记录025_大数据工作笔记0185
  • c++学习第十四讲---STL常用容器---vector容器
  • 数据结构-内部排序
  • Qt加载网页崩溃 ASSERT:“m_adapterClient“ in file ...
  • 合约短线高胜率策略-扭转乾坤指标使用说明
  • DAY37:贪心算法738
  • 计算机中的缓存与内存
  • 2.1总结
  • 探索Pyecharts:绘制多彩日历图的艺术与技巧
  • 响应标头Allow-Headers和Expose-Headers的区别和用法
  • <网络安全>《13 上网行为管理》
  • 安全通道堵塞识别摄像机