• 麒麟操作系统设置QT程序开机自启动有效方法


    在麒麟操作系统上设置QT程序开机自启动的两种简单有效的方法。支持请点赞!

    一、QT程序打包

    1.设置环境变量

    设置QT和linuxdeployqt的环境变量,已设置可忽略该步骤。

    在/etc/profile文件末尾添加一下内容:

    1. export PATH=/usr/local/Qt-5.15.2/bin:/home/MyWork/build-linuxdeployqt-unknown-Release/bin:/usr/local/Qt-5.15.2/lib:/usr/local/Qt-5.15.2/plugins:/usr/local/Qt-5.15.2/plugins/platforms/:$PATH
    2. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Qt-5.15.2/lib
    3. export PLUGIN_PATH=/usr/local/Qt-5.15.2/plugins:$PLUGIN_PATH
    4. export QML2_PATH=/usr/local/Qt-5.15.2/qml:$QML2_PATH
    5. export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/Qt-5.15.2/plugins/platforms/
    6. export QT_DEBUG_PLUGINS=1

    2.程序打包

    使用linuxdeployqt工具进行打包。

    自行下载linuxdeployqt-master编译安装或下载已编译好的执行体

    linuxdeployqt App.exe -appimage

    二、创建程序启动脚本

    1.在程序执行文件目录下创建startup.sh文件

    2.编辑startup.sh文件

    输入以下内容(“//”后为本文添加的注释说明,后同):

    1. #!/bin/bash
    2. #export QT_QPA_PLATFORM=’offscreen’           //当为无界面程序时须将注释放开
    3. source /etc/profile                           //使环境变量生效
    4. cd /*/*                                       //设置为AppRun所在目录路径
    5. ./AppRun                                      //该文件为linuxdeployqt工具生成文件

    三、开机自启动设置

    开机自启动针对有无图形界面程序将采用不同的设置方式。

    1.针对有图形界面程序

    (1).进入系统目录

    cd /etc/xdg/autostart/

    (2).在/etc/xdg/autostart/目录下新建AppRun.desktop文件(文件名可自定义)

    sudo touch AppRun.desktop

    (3).赋予AppRun.desktop权限

    sudo chmod 777 AppRun.desktop

    (4).编辑AppRun.desktop文件内容

    输入以下内容:

    1. [Desktop Entry]
    2. Type=Application
    3. Name=AppRun //名称可自定义
    4. Exec=/*/startup.sh //设置为startup.sh所在目录路径

    (5).reboot重启测试。

    2.针对无图像界面程序

    重点注意:设置无图形界面程序服务时需将脚本中的export QT_QPA_PLATFORM=’offscreen’放开,否则会报引用QT库错误,暂时找不到解决方案。

    (1).进入系统目录

    cd /etc/systemd/system

    (2).在/etc/systemd/system/目录下新建AppRun.service文件(文件名可自定义)

    1. sudo touch AppRun.service
    2. sudo chmod 777 AppRun.service

    (3).编辑AppRun.service文件内容,执行脚本路径根据实际情况修改。

    1. [Unit]
    2. Description=AppRun
    3. After=AppRun.service
    4. [Service]
    5. User=root
    6. Group=root
    7. WorkingDirectory=/home//MyWork/bin/unix/Debug/
    8. Type=forking
    9. ExecStart=/home/MyWork/bin/unix/Debug/startup.sh
    10. ExecReload=/home/MyWork/bin/unix/Debug/startup.sh -s reload
    11. ExecStop=/home/MyWork/bin/unix/Debug/startup.sh -s stop
    12. Execenable=/home/MyWork/bin/unix/Debug/startup.sh
    13. Restart=on-abnormal
    14. [Install]
    15. WantedBy=multi-user.target

    (4).依次执行以下命令设置服务属性。

    1. systemctl enable AppRun.service                //设置AppRun.service 为服务启动项
    2. systemctl start AppRun.service                 //启动服务
    3. systemctl status AppRun.service                //查看服务状态

    (5).reboot重启测试。

    四、使用命令查看进程状态。

    ps -ef|grep AppRun

  • 相关阅读:
    stm32,STC89C51使用串口下载程序
    2019Linux系统教程189讲-0203_RHEL8系统基本使用(文件操作)
    Error contacting service. It is probably not running.问题解决
    JAVA编程规范之安全规约
    使用Python生成多种不同类型的Excel图表
    Python获取与设置Windows当前窗口
    【ESP32之旅】ESP32-S3 Jlink调试
    SpringBoot+Vue实现前后端分离的火车票售卖系统
    python学习笔记(二)
    js实现页面元素的拖拽
  • 原文地址:https://blog.csdn.net/idols_man/article/details/133679307