Leif160519的blog Leif160519的blog

——————

目录
在Ubuntu下开机自启动自己的QT程序而不启动Ubuntu的桌面
/  

在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找不到该显示的桌面了,所以会无限显示登录页面


“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill

标  题在Ubuntu下开机自启动自己的QT程序而不启动Ubuntu的桌面
作  者Leif160519
出  处https://github.icu/articles/2019/09/16/1568623863832.html
关于博主:坐标南京,运维工程师,如有问题探讨可以直接下方留言。
声援博主:如果您觉得文章对您有帮助,可以评论、订阅、收藏。您的鼓励是博主的最大动力!