Systemd作为Linux系统默认的初始化系统和服务管理器,凭借其并行启动、依赖管理及统一配置机制,显著提升了系统启动效率。针对开机自启动需求,Systemd的实现机制如下:
1、服务单元机制
Systemd将每个服务/脚本抽象为.service单元文件,其中包含启动命令、依赖关系、运行环境等声明式配置。
2、依赖控制与目标绑定
通过[Install]段的WantedBy=multi-user.target将服务关联到系统运行目标,确保在操作系统完成基础初始化后自动触发服务启动。
3、强一致性保障
Systemd会监控服务进程,支持自动重启和日志收集,确保自启动服务的持续可用性。
脚本自启
配置Systemd服务单元实现脚本自启
1、首先创建test1.sh脚本
root@elf2-desktop:~# cd /home/elf/ root@elf2-desktop:/home/elf# vi test1.sh
添加以下内容:
#!/bin/bash echo "start" >> /home/elf/c.txt
2、给脚本可执行权限
root@elf2-desktop:/home/elf# chmod 777 test1.sh
3、新建要启动的服务文件
创建并编辑test1.service文件
root@elf2-desktop:/home/elf# vi/etc/systemd/system/test1.service
在test1.service里编辑以下内容
[Unit] Description=/etc/rc.local Compatibility After=multi-user.target [Service] Type=forking ExecStart=/home/elf/test1.sh [Install] WantedBy=multi-user.target
4、让系统获取到自定义的service文件并设置开机启动
root@elf2-desktop:/home/elf# systemctl daemon-reload root@elf2-desktop:/home/elf# systemctl enable test1.service
5、执行sync后,reboot重启
root@elf2-desktop:/home/elf# sync root@elf2-desktop:/home/elf# reboot
6、验证
root@elf2-desktop:~# cat /home/elf/c.txt start //读取文件的内容,出现start说明脚本开机自启成功。
界面应用自启
配置 systemd 服务单元实现带界面应用自启
1、首先创建test2.sh脚本
root@elf2-desktop:~# cd /home/elf/ root@elf2-desktop:/home/elf# vi test2.sh
以HelloWorld为例进行测试,添加以下内容:
#!/bin/bash sleep 3 export DISPLAY=:0.0 /home/elf/HelloWorld &
sleep 3的原因为multi-user启动顺序较早,不添加sleep参数会导致应用启动失败,Ubuntu系统启动过程中,用户带界面的应用启动需要等待界面组件准备完成,这里测试elf2需要2秒左右正常进入系统,所以延时3s再启动应用。
2、给脚本可执行权限
root@elf2-desktop:/home/elf# chmod 777 test2.sh
3、新建要启动的服务文件
创建并编辑test2.service文件
root@elf2-desktop:/home/elf# vi/etc/systemd/system/test2.service
在start.service里编辑以下内容
[Unit] Description=/etc/rc.local Compatibility After=multi-user.target [Service] Type=forking ExecStart=sudo -u elf /home/elf/test2.sh [Install] WantedBy=multi-user.target
4、让系统获取到自定义的service文件并设置开机启动
root@elf2-desktop:/home/elf# systemctl daemon-reload root@elf2-desktop:/home/elf# systemctl enable test2.service
5、执行sync后,reboot重启
root@elf2-desktop:/home/elf# sync root@elf2-desktop:/home/elf# reboot
6、验证

界面配置带界面应用自启
通过 gnome-session-properties 命令可以打开开机自启工程配置界面,在这里添加用户自己的应用/脚本即可,下述以HelloWorld为例进行测试。
1、调试串口执行命令
elf@elf2-desktop:~$ export DISPLAY=:0.0 elf@elf2-desktop:~$ gnome-session-properties
此时板端会出现如下界面:

选择Add添加自己的启动脚本


选择添加后按提示保存退出即可。
2、添加的test3.sh脚本内容如下:
#!/bin/bash export DISPLAY=:0.0 /home/elf/HelloWorld &
3、给脚本提供可执行权限chmod +x /home/elf/test3.sh
4、sync保存重启,验证是否自启动

运行应用时隐藏侧边栏

通过系统设置 选中"Auto-hide the dock"再运行Qt等应用时侧边栏就会隐藏,运行效果如下:

-
单片机
+关注
关注
6071文章
45182浏览量
656240 -
嵌入式
+关注
关注
5164文章
19872浏览量
321096 -
瑞芯微电子
+关注
关注
1文章
64浏览量
10341 -
RK3588
+关注
关注
7文章
442浏览量
6285
发布评论请先 登录
ElfBoard技术贴|如何在【RK3588】ELF 2开发板上进行根系统的定制

技术贴|【RK3588】ELF 2开发板如何添加exFAT和NTFS文件系统格式

RK3588 EVB开发板原理图讲解【八】 RK3588 power Tree
瑞芯微旗舰芯RK3588开发板开售 比亚迪为应达利颁奖
【首发开箱】揭开RK3588开发板的神秘面纱!

rk3588有哪些开发板?
ElfBoard技术贴|【RK3588】ELF 2开发板开机自启动详解

评论