systemd - Linux

Table of Contents


個人表達一點看法。

其實基本上 systemd 好壞各有定論,若要在這邊討論基本上當然很正常,
只是原帖只是提供國外的網址內容說裡面有許多抱怨的聲音說他不好,
那我想問的是原帖自己有沒有用過 systemd 呢?有的話又是多久時間了,
能夠表達一下自己的心得想法,而不是這邊起個火然後大家來發表高見。

systemd 包含太多議題,個人以 init script 個項目表達他的一些優點

1. daemon 服務啟動後要把服務停止結束,使用 /etc/init.d/name stop
方式其實無法確保整個 process 都結束,很有機會程式本身 fork
出去或者是執行外部程式這類動作都無法在所謂 stop 這個參數之後
正確都被關閉。

systemd 本身整合 cgroup,整合運作資源功能先不談,其實在 systemd
架構內透過 cgroup 執行的程序都可以被追蹤到,執行的程式與資源都
能夠被正確結束。

2. 各家的 /etc/init.d 目錄內 init script 都沒有一個標準,大家都有
自己 function 有自己的語法實作,所以常寫了 init script 可能只有
適合 rh-based 的系統,換成 debian or suse 就無法正常工作。

若使用 systemd 的話就可以依據他的標準設定檔案就有個規範,就算是
有需要調整地方也不多,可攜性比較高。

另外 systemd 內可以 override 某個 service unit 設定,原本的
service unit 檔案可以不用異動就拉出額外的設定,以往要改就是動
原本檔案內容

3. init script 要指定優先順序甚至相依性單純化,以往還要去檢查自家
linux 版本相關服務的啟動順序數字來當作撰寫 script 時候帶給
chkconfig 這類工具使用的啟動與結束的優先數字。其中建立必要 rc?.d
相關 script 檔案會產生必要數字決定啟動與結束順序...

在 systemd unit 檔案內只有註明相依,與包含需要在哪些服務啟動
之前還是之後,systemd 就自動協助處理,這不用仰賴上面提到數字優先性

4. 服務的 unit 檔案內可以很簡單指定自己的啟動模式,是開機跑一次還是
成為持續運作的服務,若程式結束了要不要每隔多久自己就重新啟動,
其中也包含重試啟動的次數等。

透過 systemd 工具就可以自己服務啟動的狀態。在傳統架構內要監視該
服務是很麻煩的,要看狀態也只能夠自己查看 log 來判斷...

5. 傳統 init script 服務可能有相依性,一般來說 init script 前面會寫
可能相依哪些服務,不過實際上手動執行相關服務時候若該服務需要另外
一個服務先啟動,這樣手動啟動服務方式並檢查到。

systemd 基本上會協助處力這部分的相依需求,會預先執行某個服務後再來
執行原本服務。另外服務可以有相依指定當然也可以有互斥指定,某個服務
啟用了與執行了,另外一個服務就不能夠啟用與執行。這個在傳統 init
script 服務架構上要支援會比較麻煩。

6. 有遇過某個服務可能因為某個原因導致要啟動很久所以卡住,導致系統無法
完全開起來情況吧?卡多久沒人知道,得慢慢等。這個在 systemd 內就比較
難發生,而且也可以自己指定某個 service 啟動要求的時間,沒有指定
也會有自己預設的配置設定。

另外有一些 service 可能啟動時候會有一些初始化需要等待,以 systemd
來說會判斷所需相依性,所以該服務可以執行然後等它完成,其他服務部分
就可以先啟動,整個服務啟動的流程也可以更有效率。另外關機庾重開時候
也可以指定服務結束執行等待時間。

systemd 只有優點沒缺點嗎,答案是未必,只是很多東西可以看正面而都非負面
的事情。最後個人感覺,linux distro 的 developer 對於換不換 systemd 是
有他們的考量在,對於末端 end user 或者是 sysadm 的人來說影響不大,就算
有其實也不是問題...

不過老實說系統架構換 systemd 應該很多 sysadm 會擔心吧! 因為是全新的東西,
一般習慣舊架構的人對新事物難免會害怕,就像是 centos 7 改用全新的網路設定
架構都用 Network Manager 管理,有人還是會選擇關閉他直接改設定檔案...
不過常言到進廚房就不要怕熱,走這行也不就是如此?有新的改變其實真的不熟悉
只需要瞭解一下就好... 再者以 sysadm 來說,牽涉的議題其實也不是很深,
帶來的影響其實相當有限....

最後要論 systemd 好壞,一開始貼文不是給個 url 然後要大家表達看法,就算是
我有看法要回應也是回應給那些網路上寫反對意見的人,回應在這邊基本上是根本
沒有必要。再來這篇其實我對於 systemd 陳述也只是 systemd 內冰山一角的好處,
上面表達都是純個人的意見,不是拿來批鬥傳統 init script 的缺點用。

--

All Comments

Poppy avatarPoppy2016-07-08
不就是閒聊,已經說了 n 遍了,硬要說成是「批鬥」,
Elma avatarElma2016-07-11
就是去了解一下,他們為什麼會反對 systemd。文中早
Kumar avatarKumar2016-07-12
就說了。architecture 的東西本就可討論,不管你有沒
Necoo avatarNecoo2016-07-16
有用過,還是用了多久,是就架構去做比較。
David avatarDavid2016-07-17
回應是就論點在回應,不是就人身在回應。
Megan avatarMegan2016-07-21
那篇 po 文,其實最先跳下來戰的就是 kenduest你自己
Rosalind avatarRosalind2016-07-25
systemd 的作者才是到處對批評 systemd 的人引戰好嗎?
Skylar Davis avatarSkylar Davis2016-07-25
推錯篇
Faithe avatarFaithe2016-07-29
Hamiltion avatarHamiltion2016-08-03
到處引戰並不奇怪. Linus本人也嗆得很.
Enid avatarEnid2016-08-04
文章內個人只有陳述systemd好處,不是批鬥 init script
Andy avatarAndy2016-08-05
的壞,這是針對兩者,不是一開始原始樓主陳述的意思
Poppy avatarPoppy2016-08-06
嗯,只陳述好處,對我而言跟寫手有九成像
Enid avatarEnid2016-08-09
好像要依你的說法來 po 文才是正確的。
Edith avatarEdith2016-08-13
我在推文已經說為什麼 Slack 不用 systemd,那當然
找的都是反對/負面的論點。並沒有在否定正面的論點,
只是沒有 po 出來罷了。
Quintina avatarQuintina2016-08-17
簡單說你只負責丟議題出來?這樣不是不好,只是實在有點
Charlie avatarCharlie2016-08-20
只是在找 Slack 不用 systemd 的可能理由。
Quintina avatarQuintina2016-08-23
一堆 FYI 的文章,也只是引 url 及一點簡單的介紹。
Poppy avatarPoppy2016-08-28
我覺得你老師做久了,有職業病出現了。:)
Kama avatarKama2016-08-31
我是有些心得,但不準備現在 po 出,因為我的確還在
觀望中。而且大家本位主義太重,還是藏拙吧!
Robert avatarRobert2016-09-04
或者是他堅持要用原本架構不導入systemd 其實我也沒意見
Liam avatarLiam2016-09-08
因為我發現,去看黃易的大唐雙龍傳比較有趣一點。XD
Aaliyah avatarAaliyah2016-09-10
倒是遇過systemd關機時砍不掉某個程序,然後跑了等待時間
,不過改完等待時間好像就沒有了。
Susan avatarSusan2016-09-14
systemd 僅能用於Linux,所以有bsd的debian本來不打算支援
Frederic avatarFrederic2016-09-16
EdwardGJLee: 我是有些心得,但不準備現在 po
Vanessa avatarVanessa2016-09-16
你的話語真的很幽默風趣
Wallis avatarWallis2016-09-17
對於沒很熟的 sysadm 來說 kenduest 的文章顯然較有價
Caroline avatarCaroline2016-09-21
值 而 Edward 兄也就真的只是閒聊而已
Quintina avatarQuintina2016-09-24
我本來就一再強調是在閒聊,標題也是這麼下,但有人
Steve avatarSteve2016-09-24
就是聽不進去,有什麼辦法。
David avatarDavid2016-09-25
跑到人家舞會去大調古典鋼琴,然後說你們的音樂好俗
Megan avatarMegan2016-09-28
[閒聊] 我們來聊量子力學 然後看近兩年IEEE就好
我還在觀望風向 雖然我有想法但是還不想說
重點都在IEEE 不用去看SCI 我跟你說都在這邊了
Adele avatarAdele2016-10-01
我只是閒聊喔 重要內容都在2015~2016IEEE
Todd Johnson avatarTodd Johnson2016-10-04
你們很奇怪耶 我只是閒聊 你們又叫我表態
還砲轟我發文沒內容不然就是說我引戰
我只是閒聊 都說了重點都在這兩年的IEEEE
Sandy avatarSandy2016-10-04
自己去看很難嗎 我很想飆三字經
Linda avatarLinda2016-10-06
這系列文真是不錯
Ethan avatarEthan2016-10-08
centos 7,很多人不願意去使用新架構
Wallis avatarWallis2016-10-13
不管是network,firewall等等
Bethany avatarBethany2016-10-13
雖然說本質上是相同的,但其實在應用上有差異
例如Firewall本質還是iptables
Olive avatarOlive2016-10-16
可是多Zone,永久與暫時等等
Charlie avatarCharlie2016-10-19
一個firewalld-cmd就能實現所以可能
Bethany avatarBethany2016-10-23
一般管理員只會知道指令改變而已
Olive avatarOlive2016-10-26
知道Systemd這東西沒有幾個
Bethany avatarBethany2016-10-26
甚至我身邊就有整天抱怨CentOS7的改變
為什麼不沿用原本指令,實在很想說
Cara avatarCara2016-10-30
對於任何一個東西還是去了解原理比較實在
假如,Systemd不好,FreeBSD,Debian也不會改變
Regina avatarRegina2016-10-30
是啊,以管理系統人來說,這是相當必要的
Kumar avatarKumar2016-11-04
我個人是沒有甚麼立場,但既然那些大頭決定
Regina avatarRegina2016-11-06
一定有優異之處,相信那些開發者吧
Victoria avatarVictoria2016-11-07
Linux本身就是因為架構選擇多,才會像現在一樣
Regina avatarRegina2016-11-08
是好處也是壞處,沒辦法像MS那樣統一
想換掉就是換掉,連舊的也不會留給你
Tom avatarTom2016-11-11
systemd 我最喜歡的功能就是status,確實方便
Andy avatarAndy2016-11-16
應該說,是log整合,不能說是功能
Queena avatarQueena2016-11-19
Linux架構選擇多其實就是會出現使用者黏著度高
大部分的使用者是不喜歡換環境工具
Gilbert avatarGilbert2016-11-20
像我第一次學Linux是Arch 其他的發行版都覺得不好用
Valerie avatarValerie2016-11-23
最近被強迫使用VC++14 其實很快上手 只是心態上不能
接受
Kumar avatarKumar2016-11-24
目前版上都是支持systemd的居多 看來某個測風向的人
Anthony avatarAnthony2016-11-27
不會戰systemd了吧
Kumar avatarKumar2016-11-29
喜好與否我想這個人想法,應該不用這麼激烈吧,其各有優缺
Lydia avatarLydia2016-12-03
,沒有必要一定要爭所謂的一定最好一定不好,這樣很無聊。
Caitlin avatarCaitlin2016-12-04
主要是問法不對,如果說使用之後發現問題來問
Brianna avatarBrianna2016-12-07
可能會有人分享差異,解法,而不是丟別人意見上來
然後說為什麼不能FYI……
Jacky avatarJacky2016-12-12
通常有接觸使用才會特地詢問
這不是比較合理嗎?
至於架構好壞,我習慣有新的都會玩一下
Tracy avatarTracy2016-12-17
並且去了解差異,評估身份使用
是否
Sarah avatarSarah2016-12-20
我不懂systemd跟FreeBSD有啥關聯...
Todd Johnson avatarTodd Johnson2016-12-22
你第二點說可攜性比較高,你都綁systemd了,還談什
麼可攜?
Odelette avatarOdelette2016-12-23
在有systemd的環境下 有可攜性沒說錯吧
Dora avatarDora2016-12-26
我想Filiaslayers可能誤會我前篇所說的可攜性與通用性
Connor avatarConnor2016-12-30
的意義了...我是System builder所以用什麼init對我而言
Jacob avatarJacob2017-01-01
意義重大,而且我的init script是有透通與可攜性需求
Agnes avatarAgnes2017-01-03
但是,對於使用者貨運行管理員而言。系統的可攜性不在這
些東西上。其實我也有幫我的客戶寫了一些shell cmd warp
Yedda avatarYedda2017-01-07
warp什麼? 把一般傳統(COS5)的unix指令warp到新指令
Liam avatarLiam2017-01-10
所以,我前篇也講了:用什麼init對中酖用戶來講差異不大
Olive avatarOlive2017-01-14
事實是,只要付費。就能請人把新的系統濤整成任何你想
Olivia avatarOlivia2017-01-16
要的OS的樣子,我也曾把RH7調整成與 NextStep相容
Charlie avatarCharlie2017-01-16
然後把Slackware11偽裝成SunOS...基本上只要用戶願意付
Tristan Cohan avatarTristan Cohan2017-01-19
錢,偽裝成Windows我都可以幹.. :)
Poppy avatarPoppy2017-01-22
或運行 終端