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

遇到的错误如下:

Camera is created.

load vfvlog.[dll/so] failed for dll[/vfvlog.so] unexisted

LoadDbgConfig, LoadFile fail, err:-3, errno: No such file or directory

qt.qpa.xcb: could not connect to display

qt.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/sh

current_user=$(whoami)

echo "当前用户为:$current_user" >> /root/Camera_Package/Camera.log

#export QT_DEBUG_PLUGINS=1

#export QT_QPA_PLATFORM=xcb

export DISPLAY=192.168.2.188:0.0

export LD_LIBRARY_PATH=/root/Camera_Package/lib/:$LD_LIBRARY_PATH

export QT_QPA_PLATFORM_PLUGIN_PATH=/root/Camera_Package/plugins/platforms


    if ! pgrep Camera > /dev/null; then

        echo "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.log

    else

echo "Camera is running."

        echo "Camera is running." >> /root/Camera_Package/Camera.log

    fi



exit 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电脑桌面会收到如下的提示,直接同意(是)即可。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值