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

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

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

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

技術分享| 什么是Systemd

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

掃碼添加小助手

加入工程師交流群

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


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

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


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


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


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

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


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


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


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


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


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


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

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

    關注

    5189

    文章

    20192

    瀏覽量

    329534
  • imx8
    +關注

    關注

    3

    文章

    42

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux使用Systemd管理進程服務

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

    Linux使用Systemd管理進程服務

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

    如何在 Linux 上從 NetworkManager 切換為 systemd

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

    【Intel Edison試用體驗】嚴肅臉試用5——從SSH無法連接到systemd

    systemd和linux文件系統(tǒng)之/dev/loop的理解。測試環(huán)境:Windows 7 64 bit,Xshell 5,WIFI,Intel Edison 最新固件1、配置完成后無法通過SSH連接到開發(fā)板
    發(fā)表于 08-10 23:04

    systemd定時器的基本操作方法

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

    i.M8XMQ開發(fā)板如何通過Systemd服務實現(xiàn)應用自啟

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

    如何將imx8mpevk板的默認Systemd - Init Manager更改為Sysvinit?

    如何將 imx8mpevk 板的默認 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ū)細化,大大降低了穩(wěn)定性,并增加了復雜性,但卻沒有多少實際價值?!?/div>
    的頭像 發(fā)表于 12-14 16:55 ?5467次閱讀

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

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

    走進Linux之systemd啟動過程

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

    Linux項目開發(fā),你必須了解Systemd服務!

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

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

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

    systemd journal收集日志的三種方式

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

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

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

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

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