在麒麟操作系统上设置QT程序开机自启动的两种简单有效的方法。支持请点赞!
设置QT和linuxdeployqt的环境变量,已设置可忽略该步骤。
在/etc/profile文件末尾添加一下内容:
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
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Qt-5.15.2/lib
export PLUGIN_PATH=/usr/local/Qt-5.15.2/plugins:$PLUGIN_PATH
export QML2_PATH=/usr/local/Qt-5.15.2/qml:$QML2_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/Qt-5.15.2/plugins/platforms/
export QT_DEBUG_PLUGINS=1
使用linuxdeployqt工具进行打包。
自行下载linuxdeployqt-master编译安装或下载已编译好的执行体。
linuxdeployqt App.exe -appimage
输入以下内容(“//”后为本文添加的注释说明,后同):
#!/bin/bash
#export QT_QPA_PLATFORM=’offscreen’ //当为无界面程序时须将注释放开
source /etc/profile //使环境变量生效
cd /*/* //设置为AppRun所在目录路径
./AppRun //该文件为linuxdeployqt工具生成文件
开机自启动针对有无图形界面程序将采用不同的设置方式。
(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文件内容
输入以下内容:
[Desktop Entry]
Type=Application
Name=AppRun //名称可自定义
Exec=/*/startup.sh //设置为startup.sh所在目录路径
(5).reboot重启测试。
重点注意:设置无图形界面程序服务时需将脚本中的export QT_QPA_PLATFORM=’offscreen’放开,否则会报引用QT库错误,暂时找不到解决方案。
(1).进入系统目录
cd /etc/systemd/system
(2).在/etc/systemd/system/目录下新建AppRun.service文件(文件名可自定义)
sudo touch AppRun.service
sudo chmod 777 AppRun.service
(3).编辑AppRun.service文件内容,执行脚本路径根据实际情况修改。
[Unit]
Description=AppRun
After=AppRun.service
[Service]
User=root
Group=root
WorkingDirectory=/home//MyWork/bin/unix/Debug/
Type=forking
ExecStart=/home/MyWork/bin/unix/Debug/startup.sh
ExecReload=/home/MyWork/bin/unix/Debug/startup.sh -s reload
ExecStop=/home/MyWork/bin/unix/Debug/startup.sh -s stop
Execenable=/home/MyWork/bin/unix/Debug/startup.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
(4).依次执行以下命令设置服务属性。
systemctl enable AppRun.service //设置AppRun.service 为服务启动项
systemctl start AppRun.service //启动服务
systemctl status AppRun.service //查看服务状态
(5).reboot重启测试。
ps -ef|grep AppRun