女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RK3576開發(fā)板的應(yīng)用程序開機自啟動方法

ljx2016 ? 來源:ljx2016 ? 作者:ljx2016 ? 2025-05-06 10:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 簡要介紹:

Systemd 是一個系統(tǒng)和服務(wù)管理器,也是 Linux 操作系統(tǒng)中最常用的【初始化系統(tǒng)】之一。最早是為了代替?zhèn)鹘y(tǒng)的初始化系統(tǒng)(init)而開發(fā)的,相較于傳統(tǒng) init,systemd 具有支持并行啟動【可同時啟動多個服務(wù)】,提高系統(tǒng)啟動速度的優(yōu)勢,可以更好地管理系統(tǒng)和服務(wù)進程。目前,許多主流 Linux 發(fā)行版都采用了 systemd 作為其默認的初始化系統(tǒng),包括 Ubuntu、Debian、Fedora、CentOS、Arch Linux 等。

1.1 服務(wù)單元文件

Systemd通過【服務(wù)單元文件】進行開機啟動管理。【服務(wù)單元文件】指的是在 /etc/systemd/system 目錄中以“.service”后綴的結(jié)尾的文件。

2. 操作指導(dǎo):

2.1 配置開機啟動服務(wù)

建立adb連接(不清楚如何操作,可參考《入門指南/調(diào)試方式介紹/adb調(diào)試》)

執(zhí)行命令,切換到板卡環(huán)境:

adb shell
wKgZPGgZepKAWwNoAABZ6_UM3RI296.png

首先我們在 /etc/systemd/system/ 創(chuàng)建一個自己的【服務(wù)單元文件(Systemd Service)】:myservice.service。

cd /etc/systemd/system/ 
vim myservice.service
wKgZO2gZepKAZiD9AAFZUnaxZSA361.png

注意:Systemd Service 既可位于 /etc/systemd/system(供系統(tǒng)管理員和用戶使用),也可以位于/usr/lib/systemd/system(供發(fā)行版打包者使用),我們一般使用前者即可。

【服務(wù)單元文件】腳本文件以 .service 結(jié)尾,由 Unit、Service 和 Install 三個區(qū)塊組成,以下為 service 文件腳本樣例:

wKgZPGgZepKAIC1WAABfwRrU3h8731.png

注意:GUI應(yīng)用需要在桌面系統(tǒng)啟動后再啟動ExecStart為指定啟動單元的命令或者腳本,是配置文件里面最重要的字段,下面來演示如何創(chuàng)建并編輯腳本。

2.2 創(chuàng)建并編輯腳本

創(chuàng)建一個可執(zhí)行的腳本用于啟動Service進程,用戶可根據(jù)需求向腳本寫入需要執(zhí)行的可執(zhí)行文件,此處的腳本僅服務(wù)于演示需要。

執(zhí)行命令,先定位到/userdata目錄:

cd /userdata

然后通過vim命令,可以創(chuàng)建start_app.sh腳本進行編輯:

touch start.sh
chmod 755 start.sh
vim start_app.sh
wKgZO2gZepKAcvKRAAAf2043sPs804.png

注意:這里簡單地通過編譯hellomonster.c生成了hellomonster可執(zhí)行文件,僅為在此進行說明演示。用戶需根據(jù)自己需求向腳本寫入需要執(zhí)行的可執(zhí)行文件。

2.3 驗證開機啟動:

在創(chuàng)建或修改任何【服務(wù)單元文件】后,我們必須讓 systemd 知道有新的【服務(wù)單元文件被創(chuàng)建】或者【服務(wù)單元文件被修改】,可通過下方命令讓systemd執(zhí)行查找與同步:

systemctl daemon-reload

此時,我們新的【服務(wù)單元文件】應(yīng)該已經(jīng)被識別,我們可通過下方命令啟動它:

systemctl start myservice.service

最后,告訴 systemd 使能新的【服務(wù)單元文件】,以便每次開機啟動時它都會啟動:

systemctl enable myservice.service

注意:您不會從此命令中獲得反饋,因為它所做的只是向 systemd 發(fā)送一條消息,告訴它啟動您的服務(wù)。您鍵入的命令不會停留以查看接下來會發(fā)生什么。

我們可以用以下命令來檢查我們的服務(wù),確保它看起來沒問題

systemctl status myservice.service
wKgZPGgZepOAXWqgAADnQsf2wzI330.png

Loaded行:配置文件的位置,是否設(shè)為開機啟動

Active行:表示正在運行

Main PID行:主進程ID

CGroup塊:應(yīng)用的所有子進程

日志塊:應(yīng)用的日志

下面我們進行軟件重啟,在adb shell環(huán)境下輸入重啟命令

reboot

進入板卡環(huán)境

adb shell

最終程序運行后,可在ps -x進程列表中看到進程在啟動運行

ps -x
wKgZO2gZepOASFDhAAFzb5qrDrk471.png

注意:要在該程序源代碼中加入死循環(huán),否則無法看到該程序正在運行

3. 詳細說明

wKgZPGgZepOAT_c3AABfwRrU3h8302.png

3.1 [Unit] 啟動順序與依賴關(guān)系

定義控制單元 [Unit]

所有引導(dǎo)過程中 Systemd 要控制的東西都是一個單元。基本的用法如下:

Description:代表整個單元的描述,可根據(jù)需要簡單填寫。

Environment:環(huán)境變量或參數(shù)(系統(tǒng)環(huán)境變量此時無法使用)

After:描述服務(wù)類別,表示本服務(wù)需要在某服個務(wù)(*.service)或多個服務(wù)啟動后再啟動,也可以表示需要在某個服務(wù)組(*.target)啟動后再啟動。【注意:GUI應(yīng)用需要在桌面系統(tǒng)啟動后再啟動】

Before:表示本服務(wù)需要在某些服務(wù)啟動之前啟動。

Defaultdependencies=no 可以禁止默認依賴的注入,是為了【減少錯誤】 和 【減少單元配置文件的體量】。

Wants:本單元啟動了,它“想要”的單元也會被啟動。但是這個單元若啟動不成功,對本單元沒有影響。

Requires: 這個設(shè)定并不能控制啟動順序,它表示"強依賴"關(guān)系,即如果該服務(wù)啟動失敗或異常退出,則本單元也無法啟動,所以不建議使用這個字段。

OnFailure:若本單元啟動失敗了,那么啟動這個單元作為折衷。

3.2 [Service] 啟動行為

定義服務(wù)本體 [service]

在定義完了 Systemd 用來識別服務(wù)的單元后,我們來定義服務(wù)本體。基本的用法如下:

Type:服務(wù)的類型,各種類型的區(qū)別如下所示

simple:默認,這是最簡單的服務(wù)類型。ExecStart字段啟動的進程為主進程

forking:ExecStart 字段將以 fork() 方式啟動,此時父進程將會退出,子進程將成為主進程(例如用 shell 腳本啟動服務(wù)進程)。

oneshot:適用于那些被一次性執(zhí)行的任務(wù)或者命令,它運行完成后便了無痕跡。類似于simple,但只執(zhí)行一次,Systemd 會等它執(zhí)行完,才啟動其他服務(wù)。

dbus:這個程序啟動時需要獲取一塊 DBus 空間,所以需要和 BusName= 一起用。只有它成功獲得了 DBus 空間,依賴它的程序才會被啟動。

ExecStart:在輸入的命令是start時候執(zhí)行的命令,這里的命令啟動的程序必須使用絕對路徑,比如你必須用/sbin/arp而不能簡單的以環(huán)境變量直接使用arp。

ExecStop:在輸入的命令是stop時候執(zhí)行的命令,要求同上。

ExecReload:這個不是必需,如果不寫則你的service就不支持restart命令。ExecStart和ExecStop是必須要有的。

3.3 [Install] 安裝服務(wù)

安裝服務(wù) [install]

服務(wù)編寫完之后還需要被systemd裝載,定義安裝單元各個字段如下:

WantedBy:設(shè)置服務(wù)被誰裝載,一般設(shè)置為multi-user.target

執(zhí)行以下命令可查看multi-user.target所包含的所有服務(wù)

systemctl list-dependencies multi-user.target
wKgZO2gZepOAaHNvAAFdb4oe-jY703.png

3.4 關(guān)于TARGET

Target 的含義是【服務(wù)組】,如 WantedBy=multi-user.target 指的是該服務(wù)所屬于 multi-user.target。當執(zhí)行以下命令時,xxx.service 的符號鏈接就會被創(chuàng)建在 /etc/systemd/system/multi-user.target 目錄下。

systemctl enable xxx.service

可以通過以下命令查看系統(tǒng)默認啟動的 target

systemctl get-default

一般為 multi-user 或者是 graphical。因此配置好相應(yīng)的 WantedBy 字段,可以實現(xiàn)服務(wù)的開機啟動。

注意:常用的 Target 有兩個:一個是multi-user.target,表示多用戶命令行狀態(tài);另一個是graphical.target,表示圖形用戶狀態(tài),它依賴于multi-user.target。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5680

    瀏覽量

    104657
  • rk3576
    +關(guān)注

    關(guān)注

    1

    文章

    174

    瀏覽量

    721
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于RK3576開發(fā)板的人臉識別算法

    RK3576開發(fā)板展示人臉識別算法例程和API說明
    的頭像 發(fā)表于 05-07 16:48 ?1932次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的人臉識別算法

    基于RK3576開發(fā)板的RTC使用說明

    文章主要展示RK3576開發(fā)板的RTC信息和快速上手例程
    的頭像 發(fā)表于 05-07 15:04 ?812次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的RTC使用說明

    基于RK3576開發(fā)板的PWN使用說明

    RK3576開發(fā)板使用PWN教程及Demo
    的頭像 發(fā)表于 05-07 14:07 ?1275次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PWN使用說明

    基于RK3576開發(fā)板的TF卡槽使用說明

    RK3576開發(fā)板使用TF卡槽
    的頭像 發(fā)表于 05-07 09:24 ?749次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的TF卡槽使用說明

    基于RK3576開發(fā)板的PCIE固態(tài)硬盤使用說明

    RK3576開發(fā)板的PICE固態(tài)硬盤使用方法
    的頭像 發(fā)表于 05-06 17:33 ?1354次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PCIE固態(tài)硬盤使用說明

    基于RK3576開發(fā)板的WDT看門狗使用說明

    RK3576開發(fā)板的WDT使用說明
    的頭像 發(fā)表于 05-06 17:15 ?635次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的WDT看門狗使用說明

    基于RK3576開發(fā)板的HDMI-OUT使用說明

    RK3576開發(fā)板的HDMI-OUT使用說明
    的頭像 發(fā)表于 05-06 16:48 ?340次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的HDMI-OUT使用說明

    基于RK3576開發(fā)板的揚聲器和耳機使用說明

    RK3576開發(fā)板的揚聲器和耳機使用說明
    的頭像 發(fā)表于 05-06 16:36 ?425次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的揚聲器和耳機使用說明

    基于RK3576開發(fā)板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯(lián)盟下的Display工作組指定的DSI(Display Serial Interface)的接口標準。rk3576開發(fā)板使用mipi-dsi教程
    的頭像 發(fā)表于 05-06 16:11 ?373次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的MIPI-DSI使用

    迅為RK3576開發(fā)板Android?多屏顯示

    迅為RK3576開發(fā)板Android?多屏顯示
    的頭像 發(fā)表于 01-16 16:58 ?1009次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>Android?多屏顯示

    迅為RK3576開發(fā)板核心與底板接口硬件介紹

    迅為RK3576開發(fā)板核心與底板接口硬件介紹
    的頭像 發(fā)表于 01-14 15:15 ?1511次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    Linux系統(tǒng)更換開機logo方法教程,觸覺智能RK3562開發(fā)板演示

    本文介紹Linux系統(tǒng)更換開機logo方法教程,通用RK3566、RK3568、RK3588、RK357
    的頭像 發(fā)表于 01-06 10:53 ?794次閱讀
    Linux系統(tǒng)更換<b class='flag-5'>開機</b>logo<b class='flag-5'>方法</b>教程,觸覺智能<b class='flag-5'>RK</b>3562<b class='flag-5'>開發(fā)板</b>演示

    敬請期待 | 迅為RK3576開發(fā)板即將發(fā)布

    敬請期待 | 迅為RK3576開發(fā)板即將發(fā)布
    的頭像 發(fā)表于 11-22 15:13 ?620次閱讀
    敬請期待 | 迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>即將發(fā)布

    米爾RK3576開發(fā)板特惠活動!

    近日,米爾電子發(fā)布基于瑞芯微RK3576核心開發(fā)板RK3576作為國產(chǎn)熱門處理器,其高性能數(shù)據(jù)處理能力、領(lǐng)先的AI智能分析、強大的擴展性與兼容性受到廣大
    的頭像 發(fā)表于 11-12 01:00 ?860次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>特惠活動!

    新品體驗 | RK3576開發(fā)板

    RK3399、RK3566、RK3568、RK3588、RK3576等型號的核心與評估
    的頭像 發(fā)表于 11-01 08:08 ?1917次閱讀
    新品體驗 | <b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>