chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

技術(shù)分享| 什么是Systemd

啟揚(yáng)ARM嵌入式開發(fā) ? 2025-12-18 17:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

繼上次針對我司IAC-IMX8MP-Kit Yocto系統(tǒng)上Systemd的簡介,這篇文章主要分析一下關(guān)于Service的一些關(guān)鍵屬性,幫助大家更好的了解Systemd最重要的單元,更好的控制自己的服務(wù)。


c2baa976-dbf3-11f0-8ce9-92fbcf53809c.jpg

這里以一個客戶的具體需求為例:自啟動Qt應(yīng)用,能夠盡快的啟動。這里貼上完整的service屬性,依據(jù)對應(yīng)屬性詳細(xì)分析,如下圖所示:


c2cdb318-dbf3-11f0-8ce9-92fbcf53809c.png


總共分為三個單元,Unit、Service、Install。其中Unit單元的Description屬性是對服務(wù)的描述,主要顯示在服務(wù)啟動時的表述,如下圖所示。


c2d49b06-dbf3-11f0-8ce9-92fbcf53809c.png?

After屬性主要是為了限制當(dāng)前服務(wù)地啟動順序,這也是相比較傳統(tǒng)init.d啟動的優(yōu)勢之一,需求是自啟動Qt,那么需要在服務(wù)框架之后啟動,所以在weston.service之后。


Service單元是我們?nèi)蝿?wù)的執(zhí)行單元,默認(rèn)給予了很多屬性可以配置,這里我們主要看一下第一張圖中的幾個屬性,Environment屬性是給予任務(wù)執(zhí)行時附加的環(huán)境變量,這里為了讓Qt成功運(yùn)行,附加了XDG的運(yùn)行目錄和QT的運(yùn)行平臺,而Type屬性是任務(wù)的啟動方式,目前有oneshot、simple、forking三種,這里比較重要,單獨(dú)介紹。


Oneshot適用于一次性完成的配置、設(shè)置的屬性等,systemd會始終阻塞等待相應(yīng)動作的完成,判斷服務(wù)啟動成功。如果在這里用來啟動一個常駐的應(yīng)用,那么啟動的應(yīng)用將會一直阻塞在那里,systemd會認(rèn)為該服務(wù)一直在啟動中,在等待一定時間后(往往是90s)會結(jié)束掉這個服務(wù),服務(wù)啟動失敗。


Simple是最常用的配置,會正常啟動進(jìn)程,并且啟動的應(yīng)用會被自動放入后臺常駐,非常適用于啟動某些后臺檢測腳本以及應(yīng)用程序等,但這里也要注意的是,當(dāng)它啟動的是一個腳本時,systemd的監(jiān)控是針對腳本進(jìn)程的,而對于其中的應(yīng)用程序等則可能忽略掉相關(guān)信息,這里推薦是使用exec命令啟動程序。


Forking屬于老舊的配置,目前只有極少數(shù)服務(wù)采用這種配置。Forking適用于多進(jìn)程的程序,當(dāng)啟動的父進(jìn)程退出,子進(jìn)程完全啟動的時候,systemd認(rèn)為服務(wù)啟動成功。所以它并不適合用作在腳本里啟動一個常駐進(jìn)程。當(dāng)它啟動一個腳本,那么腳本將作為主進(jìn)程,腳本里啟動的常駐應(yīng)用將作為子進(jìn)程啟動,而該子進(jìn)程因?yàn)槭浅qv應(yīng)用,將會阻塞父進(jìn)程退出,導(dǎo)致systemd認(rèn)為該服務(wù)一直在啟動中,超過一定時間(往往是90s)后,會自動結(jié)束該服務(wù),導(dǎo)致應(yīng)用啟動失敗。


接下來是ExecStart屬性,該屬性主要用于執(zhí)行動作,用于執(zhí)行后面的應(yīng)用程序,腳本等,需要注意的是,應(yīng)用程序需要絕對路徑啟動,而腳本是新的腳本解釋器去運(yùn)行,注意環(huán)境變量,以及相關(guān)腳本變量。


最后是Install單元,該單元主要是跟開機(jī)自啟動有關(guān)系,其中WantedBy屬性簡單來說便是依賴,當(dāng)用戶執(zhí)行systemctl enable xxx.service的時候,systemd會自動創(chuàng)建軟鏈接到WantedBy的指定目標(biāo)單元下,意味著該服務(wù)會隨著目標(biāo)單元激活而自動啟動。像第一張圖中的multi-user.target,意味著當(dāng)系統(tǒng)進(jìn)入多用戶模式時,該服務(wù)會自動啟動。

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

    關(guān)注

    5198

    文章

    20442

    瀏覽量

    333972
  • imx8
    +關(guān)注

    關(guān)注

    3

    文章

    42

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Linux使用Systemd管理進(jìn)程服務(wù)

    systemd是目前Linux系統(tǒng)上主要的系統(tǒng)守護(hù)進(jìn)程管理工具,由于init一方面對于進(jìn)程的管理是串行化的,容易出現(xiàn)阻塞情況,另一方面init也僅僅是執(zhí)行啟動腳本,并不能對服務(wù)本身進(jìn)行更多的管理
    發(fā)表于 11-28 09:07 ?826次閱讀

    Linux使用Systemd管理進(jìn)程服務(wù)

    今天浩道跟大家分享linux運(yùn)維中大家很少用到的一個硬核干貨,使用 Systemd 管理進(jìn)程服務(wù)。讓你體驗(yàn)一下該技巧帶來的便捷性!
    發(fā)表于 12-12 09:02 ?901次閱讀

    內(nèi)核構(gòu)建正常,但 systemd加載失敗,為什么?

    我已經(jīng)按照202306發(fā)行說明,但它無法掛載 systemd 的文件系統(tǒng)并且沒有完成啟動。 我按照書中的指示進(jìn)行作,沒有任何更改,即: apt-get install build-essential
    發(fā)表于 03-05 06:36

    如何在 Linux 上從 NetworkManager 切換為 systemd

    今天,大部分主流 Linux 發(fā)行版都已經(jīng)采用了 systemd 作為默認(rèn)的初始化(init)系統(tǒng)?! ≌缙渥髡咚f,作為一個 "從未完成、從未完善、但一直追隨技術(shù)進(jìn)步" 的系統(tǒng)
    發(fā)表于 11-25 10:08

    systemd定時器的基本操作方法

    定時器任務(wù)作為嵌入式系統(tǒng)中常見的應(yīng)用,systemd 定時器為用戶提供更多的可配置功能以及優(yōu)化選項(xiàng)。本文列舉了 systemd 定時器基本操作方法,以及和cron 對比,幫助用戶更快得使用。更多的技術(shù)細(xì)節(jié)和功能請參考下面的鏈接內(nèi)
    發(fā)表于 01-01 07:37

    i.M8XMQ開發(fā)板如何通過Systemd服務(wù)實(shí)現(xiàn)應(yīng)用自啟

    飛凌OKMX8MQ-C開發(fā)板是基于ARM?Cortex-A53和Cortex-M4的內(nèi)核,具有業(yè)界領(lǐng)先的音頻、語音和視頻處理功能。這次我們就來介紹一下如何通過systemd服務(wù)實(shí)現(xiàn)音頻應(yīng)用的自啟
    發(fā)表于 04-25 15:22

    如何將imx8mpevk板的默認(rèn)Systemd - Init Manager更改為Sysvinit?

    如何將 imx8mpevk 板的默認(rèn) Systemd - Init Manager 更改為 Sysvinit。是否更改了 build/conf/local.conf 文件 INIT_MANAGER
    發(fā)表于 03-15 06:42

    Systemd 又遭背鍋:創(chuàng)建 Devuan 是為了保證 Linux 的穩(wěn)定性

    Systemd 開發(fā)者將社區(qū)細(xì)化,大大降低了穩(wěn)定性,并增加了復(fù)雜性,但卻沒有多少實(shí)際價值?!?/div>
    的頭像 發(fā)表于 12-14 16:55 ?5526次閱讀

    Linux系統(tǒng)與服務(wù)管理工具Systemd被曝存在3大漏洞

    2013 年 4 月引入(systemd v203),并在 2016 年 2 月可利用(systemd v230),研究人員寫了一個 PoC,可在 i386 上獲得 eip 控制。
    的頭像 發(fā)表于 01-25 16:51 ?3925次閱讀
    Linux系統(tǒng)與服務(wù)管理工具<b class='flag-5'>Systemd</b>被曝存在3大漏洞

    走進(jìn)Linux之systemd啟動過程

    的問題,systemd是Linux系統(tǒng)機(jī)器的另一種啟動方式,宣稱彌補(bǔ)了以傳統(tǒng)Linux SysV init為基礎(chǔ)的系統(tǒng)的缺點(diǎn)。
    發(fā)表于 04-27 19:14 ?3660次閱讀

    Linux項(xiàng)目開發(fā),你必須了解Systemd服務(wù)!

    1.Systemd簡介Systemd是什么,以前l(fā)inux系統(tǒng)啟動init機(jī)制,由于init一方面對于進(jìn)程的管理是串行化的,容易出現(xiàn)阻塞情況,另一方面init也僅僅是執(zhí)行啟動腳本,并不能對服務(wù)
    的頭像 發(fā)表于 06-18 17:59 ?1646次閱讀
    Linux項(xiàng)目開發(fā),你必須了解<b class='flag-5'>Systemd</b>服務(wù)!

    Systemd是什么?Systemd Service配置文件詳解

    Systemd是什么,以前l(fā)inux系統(tǒng)啟動init機(jī)制,由于init一方面對于進(jìn)程的管理是串行化的,容易出現(xiàn)阻塞情況,另一方面init也僅僅是執(zhí)行啟動腳本,并不能對服務(wù)本身進(jìn)行更多的管理
    的頭像 發(fā)表于 07-22 18:03 ?3115次閱讀

    systemd journal收集日志的三種方式

    隨著 systemd 成了主流的 init 系統(tǒng),systemd 的功能也在不斷的增加,比如對系統(tǒng)日志的管理。Systemd 設(shè)計的日志系統(tǒng)好處多多,這里筆者就不再贅述了,本文筆者主要介紹 s
    的頭像 發(fā)表于 10-23 11:50 ?1488次閱讀
    <b class='flag-5'>systemd</b> journal收集日志的三種方式

    技術(shù)分享】正確編寫SysV Init腳本以實(shí)現(xiàn)Systemd兼容(上)

    /),但在Systemd系統(tǒng)中,這些腳本需通過systemd-sysv-generator換為原生服務(wù)單元。若腳本未遵循LinuxStandardBase(LSB)規(guī)范
    的頭像 發(fā)表于 10-28 11:45 ?713次閱讀
    【<b class='flag-5'>技術(shù)</b>分享】正確編寫SysV Init腳本以實(shí)現(xiàn)<b class='flag-5'>Systemd</b>兼容(上)

    技術(shù)分享】Systemd原生服務(wù)配置最佳實(shí)踐(下)

    上期我們說到sysv的規(guī)范,創(chuàng)建以及示例,那么我們今天就來講講Systemd的原生服務(wù)配置。為何要遷移到Systemd原生服務(wù)?盡管規(guī)范化的SysV腳本可臨時解決問題,但可能存在以下缺陷:效率低下
    的頭像 發(fā)表于 10-29 11:40 ?415次閱讀
    【<b class='flag-5'>技術(shù)</b>分享】<b class='flag-5'>Systemd</b>原生服務(wù)配置最佳實(shí)踐(下)