91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

啟揚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成功運行,附加了XDG的運行目錄和QT的運行平臺,而Type屬性是任務(wù)的啟動方式,目前有oneshot、simple、forking三種,這里比較重要,單獨介紹。


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īng)用,將會阻塞父進(jìn)程退出,導(dǎo)致systemd認(rèn)為該服務(wù)一直在啟動中,超過一定時間(往往是90s)后,會自動結(jié)束該服務(wù),導(dǎo)致應(yīng)用啟動失敗。


接下來是ExecStart屬性,該屬性主要用于執(zhí)行動作,用于執(zhí)行后面的應(yīng)用程序,腳本等,需要注意的是,應(yīng)用程序需要絕對路徑啟動,而腳本是新的腳本解釋器去運行,注意環(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20434

    瀏覽量

    333880
  • imx8
    +關(guān)注

    關(guān)注

    3

    文章

    42

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guā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運維中大家很少用到的一個硬核干貨,使用 Systemd 管理進(jìn)程服務(wù)。讓你體驗一下該技巧帶來的便捷性!
    發(fā)表于 12-12 09:02 ?899次閱讀

    如何在 Linux 上從 NetworkManager 切換為 systemd

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

    【Intel Edison試用體驗】嚴(yán)肅臉試用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定時器的基本操作方法

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

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

    飛凌OKMX8MQ-C開發(fā)板是基于ARM?Cortex-A53和Cortex-M4的內(nèi)核,具有業(yè)界領(lǐng)先的音頻、語音和視頻處理功能。這次我們就來介紹一下如何通過systemd服務(wù)實現(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ù)雜性,但卻沒有多少實際價值?!?/div>
    的頭像 發(fā)表于 12-14 16:55 ?5524次閱讀

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

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

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

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

    Linux項目開發(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 ?1645次閱讀
    Linux項目開發(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 ?3113次閱讀

    systemd journal收集日志的三種方式

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

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

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

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

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