在 Ubuntu 下开机自启动自己的 QT 程序而不启动 Ubuntu 的桌面
Posted smartvxworks
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 Ubuntu 下开机自启动自己的 QT 程序而不启动 Ubuntu 的桌面相关的知识,希望对你有一定的参考价值。
1. /etc/profile 方式
实现这个功能,要完成两步:
1、系统设置-> 用户账户-> 点击我的账户-> 点击右上角的解锁-> 打开自动登录-> 点击右上角的锁定-> 退出系统设置
2、在 /etc/profile
文件的开头添加执行 qt 程序的命令。如:
cd /usr/local/src/QT_dir(这里是可执行文件的绝对路径)
./hello
或者直接写:
/usr/local/src/QT_dir/hello
这样在启动的时候,Ubuntu 就不会启动自己的桌面了,另外要是想自己 QT 应用程序结束时,主机也自动关机的话,就直接在执行 qt 程序的指令后面添加:init 0
注意:上述方法当 QT 程序崩溃的时候,会自动跳转到登录页面,输入密码过后会进入 ubuntu 桌面,若想不加载 ubuntu 桌面,保证数据安全,可以看下面的方式
2.xessions 方式
若想将 QT 程序直接当成 ubuntu 的桌面的话,则必须替换掉 /usr/share/xsessions
下的所有文件,该文件夹下默认存放加载 ubuntu 桌面的所有配置文件
xsessions/ ├── ubuntu-communitheme-snap.desktop └── ubuntu.desktop
2.1 备份 Ubuntu 配置文件
cd /usr/share/
mv xsessions xsessions_ubuntu
2.2 新建新的 xsessions 文件夹
mkdir xsessions
2.3 新建 QT 桌面配置文件和执行脚本(文件名随意)
touch QT.desktop
toch QT.sh
文件内容:
QT.desktop
[Desktop Entry]
Type=Application
Exec=sudo -u root /bin/bash /usr/share/xsessions/QT.sh
QT.sh
xset s 0 #关闭屏幕保护
xset dpms 0 0 0 #关闭屏幕休眠
cd /usr/local/src/QT_dir
./hello
整体目录结构
xsessions ├── QT.desktop └── QT.sh xsessions_ubuntu ├── ubuntu-communitheme-snap.desktop └── ubuntu.desktop
注意:此方法当 QT 崩溃时会跳转到登录界面,但是输入密码过后会反复显示登录界面,无法进入任何桌面,那是因为 QT 程序已经作为了 ubuntu 的当前桌面,而程序崩溃之后,脚本执行完毕,故 ubuntu 找不到该显示的桌面了,所以会无限显示登录页面
ubuntu 找不到该显示的桌面了的恢复方法
1.选择*Ubuntu 的高级选项
2.选择Ubuntu,with Linux 5.3.0-59-generic (recovery mode)
3.选择root Drop to root shell prompt,然后点击OK启动命令行
4.然后在命令行下,操作下面恢复桌面
cd /usr/share/
mv xsessions_ubuntu xsessions
以上是关于在 Ubuntu 下开机自启动自己的 QT 程序而不启动 Ubuntu 的桌面的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 解决 /etc/rc.local 开机启动问题