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等應用時側邊欄就會隱藏,運行效果如下:
-
單片機
+關注
關注
6074文章
45368瀏覽量
664658 -
嵌入式
+關注
關注
5189文章
20192瀏覽量
329551 -
瑞芯微電子
+關注
關注
1文章
70瀏覽量
10570 -
RK3588
+關注
關注
8文章
503瀏覽量
7099
發布評論請先 登錄
ElfBoard技術貼|如何在【RK3588】ELF 2開發板上進行根系統的定制
ElfBoard技術貼|如何在【RK3588】ELF 2開發板上進行UART引腳復用配置
RK3588 EVB開發板原理圖講解【八】 RK3588 power Tree
瑞芯微旗艦芯RK3588開發板開售 比亞迪為應達利頒獎
rk3588有哪些開發板?
ElfBoard技術貼|【RK3588】ELF 2開發板開機自啟動詳解
ElfBoard技術貼|如何在【RK3588】ELF 2開發板用戶空間更換開機Logo

ElfBoard技術貼|如何在【RK3588】ELF 2開發板上實現開機自啟應用
評論