admin 管理员组

文章数量: 887019

编辑了一个qt界面,需要设置开机启动,费了九牛二虎之力,终于搞定了。

设置开机显示命令行

开机不显示图形界面,直接显示命令行的操作有两种方法:

  1. 多用户方法
sudo systemctl set-default multi-user.target	//多用户模式(命令行)
sudo systemctl set-default graphical.target	//图形化界面
  1. systemctl 方法
systemctl disable lightdm.service		//关闭桌面系统
systemctl enable lightdm.service		//设置桌面开机自启动
//ps:如果设置桌面开机自启动没有效果,可以用如下命令后再设置桌面自启
sudo dpkg-reconfigure lightdm			//重置桌面服务
//下面这条命令不是必须的,先备注在这里
systemctl restart lightdm.service		//重启桌面服务
  1. 临时开启命令行
    a.使用键盘ctrl+alt+F1,再输入用户名和密码尅登入tty1(F1-F7对应tty1-7,其中tty7是图形界面即桌面),返回桌面ctrl+alt+F7
    b.输入命令
sudo init 3  //终端模式 
sudo init 5  //图形界面 

c.输入命令

sudo chvt 1 //终端模式
sudo chvt 7 //图形界面

编辑启动命令

执行如下命令

crontab -e	//如果出现多个选项,就选择 /usr/bin/vim.basic

在打开的文件里面添加如下内容

//在里面添加如下内容
@reboot /home/sl/Desktop/Enforcement -platform linuxfb


命令解释

@reboot:开机时启动
/home/sl/Desktop/执行文件的路径
Enforcement执行文件名
-platform linuxfb执行文件的附加参数
ps:如果在命令行手动运行该程序,与该语句等效果的命令如下:
cd /home/sl/Desktop/
./Enforcement -platform linuxfb

验证命令是否可用

使用如下命令验证运行环境,请注意路径需要改成你自己的文件路径

sudo /home/sl/Desktop/Enforcement -platform linuxfb

如果正常运行,那就可以了.
如果报错,寻找错误原因,我的运行出来报错如下:

一看就是没有找到字体文件,并且界面上确实没有显示出汉字
就在报错中提到的文件位置建立 /home/user/qt5.9.1-arm/lib/fonts文件夹,命令

sudo mkdir -p /home/user/qt5.9.1-arm/lib/fonts

拷贝字体文件进去,我的字体文件夹是/usr/share/fonts/truetype/wqy/

cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc /home/user/qt5.9.1-arm/lib/fonts

然后重启看看是否直接执行了Enforcement文件。

延时启动的配置

有时候我们需要自己的应用在其他服务启动之后运行,如果通过判断其他服务的进程是否开启,有点麻烦,如果对时间要求不高的应用,可以简单的使用sleep来达到延时启动效果。

首先执行命令

crontab -e //如果出现多个选项,就选择 /usr/bin/vim.basic

修改成如图内容

由图可知,需要在如下目录建立auto.sh文件

/home/admin/sl/

在auto.sh中添加如下内容

#!/bin/sh
sleep 5
/home/admin/sl/Enforcement -platform linuxfb &

解释:

#!/bin/sh 这句是必要的,不解释
sleep 5 延时5/home/admin/sl/Enforcement -platform linuxfb & 表示运行/home/admin/sl/目录下的Enforcement文件,后面的&表示后台运行

给auto.sh文件赋予权限

sudo chmod 777 auto.sh #有人说使用777不是一个好习惯,我也顾不上了,就是干

如此便达到延迟5秒启动程序。注意自己按上面设置自启动,目录要改成自己的。

设置开机自启QT界面后字体依然很小的问题

出现该问题,主要是配置的环境变量没生效。
QT运行的环境变量我们通常是在/etc/profile中更改的,如下是我的配置

这里面涉及到QT字体目录,涉及QT界面分辨率和尺寸的设置,设置自启动后,由于系统没有自动登录(需要输入用户名和密码才能登陆),该文件没有执行,导致环境变量没生效。
解决方法一:编写脚本或者更改系统设置,让其在开机能够自动登录,之后再启动QT界面,该方法理论可行,实际我百度了好久,没实现自动登录操作,有知道方法的大佬麻烦给我说一下。
解决方法二:在自启程序前重新配置一下环境变量,该方法亲测可用,很简单。
在上述设置开机自启文件auto.sh中,在祁东界面前,将QT的环境变量复制进去,就搞定了,如图

本文标签: 香橙 Armbian