[爆卦]Systemd service 順序是什麼?優點缺點精華區懶人包

為什麼這篇Systemd service 順序鄉民發文收入到精華區:因為在Systemd service 順序這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者kenduest (小州)看板Linux標題Re: [閒聊] systemd時間Thu Jul ...



個人表達一點看法。

其實基本上 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 的缺點用。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.155.17
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1467900098.A.E09.html
EdwardGJLee: 不就是閒聊,已經說了 n 遍了,硬要說成是「批鬥」, 07/07 22:17
EdwardGJLee: 就是去了解一下,他們為什麼會反對 systemd。文中早 07/07 22:18
EdwardGJLee: 就說了。architecture 的東西本就可討論,不管你有沒 07/07 22:19
EdwardGJLee: 有用過,還是用了多久,是就架構去做比較。 07/07 22:20
EdwardGJLee: 回應是就論點在回應,不是就人身在回應。 07/07 22:21
EdwardGJLee: 那篇 po 文,其實最先跳下來戰的就是 kenduest你自己 07/07 22:22

我還是感覺,往後討論東西請說一點自己實際一點的內容比較實在,
要不然自己沒表達比較多內容卻希望他人表達意見是真的有點

crazydogx: systemd 的作者才是到處對批評 systemd 的人引戰好嗎? 07/07 22:22
crazydogx: 推錯篇 07/07 22:23
bibo9901: 推 07/07 22:35
bibo9901: 到處引戰並不奇怪. Linus本人也嗆得很. 07/07 22:36

樓上說 linus 比中指事情嗎:)

kenduest: 文章內個人只有陳述systemd好處,不是批鬥 init script 07/07 22:39
kenduest: 的壞,這是針對兩者,不是一開始原始樓主陳述的意思 07/07 22:40
crazydogx: 嗯,只陳述好處,對我而言跟寫手有九成像 07/07 22:42
EdwardGJLee: 好像要依你的說法來 po 文才是正確的。 07/07 22:45

基本上隨便了。至少我陳述了個人systemd的優點分析
個人認為比較實在。至於有人只是丟個議題出來也好
的確有興趣的人會參與,沒興趣自動略過

EdwardGJLee: 我在推文已經說為什麼 Slack 不用 systemd,那當然 07/07 22:49
EdwardGJLee: 找的都是反對/負面的論點。並沒有在否定正面的論點, 07/07 22:49
EdwardGJLee: 只是沒有 po 出來罷了。 07/07 22:49
kenduest: 簡單說你只負責丟議題出來?這樣不是不好,只是實在有點 07/07 22:50
EdwardGJLee: 只是在找 Slack 不用 systemd 的可能理由。 07/07 22:50

簡單說你只負責丟議題出來?這樣不是不好,只是實在有點
個人認為 linux distro 是否採用 systemd 都隨便
主要就是大頭決定,他們有他們規劃想法
systemd 個人感覺是以 linux distro 來說整個系統要

調整是需要許多整合功夫,很辛苦....
個人我自己看法是採用了這個絕對應該是經過思考過結果
多瞭解體驗一下,瞭解箇中的改變與實際帶來得好處
網路上負面抱怨systemd文章這幾年很多,個人也看過不少
有一些是比較深入架構問題個人無法評論,但是有一些基本
對我來說用systemd還是傳統init sript其實影響不大

EdwardGJLee: 一堆 FYI 的文章,也只是引 url 及一點簡單的介紹。 07/07 22:52
EdwardGJLee: 我覺得你老師做久了,有職業病出現了。:) 07/07 22:54

旗下管理清一色超過百台還不是傳統的 init script 架構的 server,
剩餘用 systemd 的確少,因為大多是新起的 server 服務沒有與舊的
放在一起時候的有的嵌入式系統來說用 systemd 會複雜嗎?個人認為小複雜
因為他有太多元件劃分開,無法像是傳統 init 單純

我目前已經不當老師了,專心都在商業上為主
當不老師與這個議題無關
當補習班老師與學校老師基本上不同
若我當純工程師沒當老師過我更是會認為討論技術更實在

題外話其實果正兄個人網路上認識你應該也超過10年了
我想這次你應該感覺我回應上態度很硬,不過我還是針對就事論事為主,
focus 還是在這個 systemd 上

我一開始回比較強烈回應是,若技術人員討論這檔事情的話,若可以放出
一些自己對systemd 使用相關心得比較等,也許內容是真的才好參與

個人對目前有處理一些舊的server把服務轉移到新架構的一些經驗,
感覺這 systemd 還蠻有意思的

當然,為何某個 linux distro 沒採用我個人是不大關心

EdwardGJLee: 我是有些心得,但不準備現在 po 出,因為我的確還在 07/07 23:03
kenduest: 或者是他堅持要用原本架構不導入systemd 其實我也沒意見 07/07 23:03
EdwardGJLee: 觀望中。而且大家本位主義太重,還是藏拙吧! 07/07 23:03
EdwardGJLee: 因為我發現,去看黃易的大唐雙龍傳比較有趣一點。XD 07/07 23:04

搞系統整合技術,是需要點堅持的
要廣納意見每個人都贊成,個人認為很難....

回應一下之前樓上的 crazydogx,只是當 systemd 專門的寫手也怪怪的...
網路上說好處的文章不少了

個人只是針對自己系統管理的小心得簡單寫寫而已裡面基本上沒有很技術性的內容,
純管理系統心得

開個玩笑目前網路上許多所謂的打手還有錢可以領
我寫這篇可是半毛錢都沒有...

Debian: 倒是遇過systemd關機時砍不掉某個程序,然後跑了等待時間 07/08 05:01
Debian: ,不過改完等待時間好像就沒有了。 07/08 05:01
hizuki: systemd 僅能用於Linux,所以有bsd的debian本來不打算支援 07/08 07:37
hizuki: 的 07/08 07:37
Sidney0503: EdwardGJLee: 我是有些心得,但不準備現在 po 07/08 14:06
Sidney0503: 你的話語真的很幽默風趣 07/08 14:08
aeolus0829: 對於沒很熟的 sysadm 來說 kenduest 的文章顯然較有價 07/08 16:30
aeolus0829: 值 而 Edward 兄也就真的只是閒聊而已 07/08 16:31
EdwardGJLee: 我本來就一再強調是在閒聊,標題也是這麼下,但有人 07/08 17:07
EdwardGJLee: 就是聽不進去,有什麼辦法。 07/08 17:08
EdwardGJLee: 跑到人家舞會去大調古典鋼琴,然後說你們的音樂好俗 07/08 17:10
Sidney0503: [閒聊] 我們來聊量子力學 然後看近兩年IEEE就好 07/08 21:48
Sidney0503: 我還在觀望風向 雖然我有想法但是還不想說 07/08 21:48
Sidney0503: 重點都在IEEE 不用去看SCI 我跟你說都在這邊了 07/08 21:48
Sidney0503: 我只是閒聊喔 重要內容都在2015~2016IEEE 07/08 21:49
Sidney0503: 你們很奇怪耶 我只是閒聊 你們又叫我表態 07/08 21:50
Sidney0503: 還砲轟我發文沒內容不然就是說我引戰 07/08 21:50
Sidney0503: 我只是閒聊 都說了重點都在這兩年的IEEEE 07/08 21:50
Sidney0503: 自己去看很難嗎 我很想飆三字經 07/08 21:51

.... XD

wgst88w: 這系列文真是不錯 07/08 23:39
kenwufederer: centos 7,很多人不願意去使用新架構 07/09 01:53
kenwufederer: 不管是network,firewall等等 07/09 01:54
kenwufederer: 雖然說本質上是相同的,但其實在應用上有差異 07/09 01:55
kenwufederer: 例如Firewall本質還是iptables 07/09 01:55
kenwufederer: 可是多Zone,永久與暫時等等 07/09 01:56

fedora 納入 systemd 測試一大段時間了,所以在 rhel7 正式納入 systemd,
其他 suse 其實也納入了 debian 不也是納入預設了?

firewalld 其實主要也是包裝一層,有個統一的架構方式能夠使用 firewall 配置,
然後也整合 dbus,後續就算換成 nftables 的 firewall 架構,firewalld
那邊會直接處理,使用者也無須擔心語法變更問題

kenwufederer: 這些對我來說,就是方便許多 07/09 01:57
kenwufederer: 一個firewalld-cmd就能實現所以可能 07/09 01:57
kenwufederer: 一般管理員只會知道指令改變而已 07/09 01:58
kenwufederer: 知道Systemd這東西沒有幾個 07/09 01:59
kenwufederer: 甚至我身邊就有整天抱怨CentOS7的改變 07/09 02:00
kenwufederer: 為什麼不沿用原本指令,實在很想說 07/09 02:00
kenwufederer: 對於任何一個東西還是去了解原理比較實在 07/09 02:01
kenduest: 是啊,以管理系統人來說,這是相當必要的 07/09 02:01
kenwufederer: 假如,Systemd不好,FreeBSD,Debian也不會改變 07/09 02:01
kenwufederer: 我個人是沒有甚麼立場,但既然那些大頭決定 07/09 02:02
kenwufederer: 一定有優異之處,相信那些開發者吧 07/09 02:04
kenwufederer: Linux本身就是因為架構選擇多,才會像現在一樣 07/09 02:06
kenwufederer: 是好處也是壞處,沒辦法像MS那樣統一 07/09 02:07
kenwufederer: 想換掉就是換掉,連舊的也不會留給你 07/09 02:07
kenwufederer: systemd 我最喜歡的功能就是status,確實方便 07/09 02:10
kenwufederer: 應該說,是log整合,不能說是功能 07/09 02:11
Sidney0503: Linux架構選擇多其實就是會出現使用者黏著度高 07/09 07:20
Sidney0503: 大部分的使用者是不喜歡換環境工具 07/09 07:20
Sidney0503: 像我第一次學Linux是Arch 其他的發行版都覺得不好用 07/09 07:21
Sidney0503: 最近被強迫使用VC++14 其實很快上手 只是心態上不能 07/09 07:23
Sidney0503: 接受 07/09 07:23
Sidney0503: 目前版上都是支持systemd的居多 看來某個測風向的人 07/09 07:24
Sidney0503: 不會戰systemd了吧 07/09 07:25
Debian: 喜好與否我想這個人想法,應該不用這麼激烈吧,其各有優缺 07/09 08:42
Debian: ,沒有必要一定要爭所謂的一定最好一定不好,這樣很無聊。 07/09 08:43

舊的有他的優缺點,新的也是如此... 我只是一開始認為貼了一堆 systemd sucks
文章原貼竟然自己沒有表達一些實體意見,是要大家「閒聊」,而且還是吵這麼久
的議題,閒聊這個我就不大懂。

kenwufederer: 主要是問法不對,如果說使用之後發現問題來問 07/09 13:47
kenwufederer: 可能會有人分享差異,解法,而不是丟別人意見上來 07/09 13:48
kenwufederer: 然後說為什麼不能FYI…… 07/09 13:48
kenwufederer: 通常有接觸使用才會特地詢問 07/09 13:49
kenwufederer: 這不是比較合理嗎? 07/09 13:49
kenwufederer: 至於架構好壞,我習慣有新的都會玩一下 07/09 13:49
kenwufederer: 並且去了解差異,評估身份使用 07/09 13:50
kenwufederer: 是否 07/09 13:50

是的,個人對於問法部分的確是比較有意見。至於什麼我有些新的看法了,
目前暫不表示意見硬要說就是比較沒有「討論誠意」 這認真說也沒啥錯誤,
只是感覺...

danny8376: 我不懂systemd跟FreeBSD有啥關聯... 07/09 18:04
filiaslayers: 你第二點說可攜性比較高,你都綁systemd了,還談什 07/09 19:41
filiaslayers: 麼可攜? 07/09 19:41
Bellkna: 在有systemd的環境下 有可攜性沒說錯吧 07/09 19:51

應該是說在 init script 各自為政,systemd 上,有個標準寫 script unit
方式比較統一若都用 systemd 下可以減少許多的麻煩其實系統管理發展來
說有個標準,大家也好 follow,畢竟 systemd 在常見需求上有設計提供
不同參數可用,認真說很省事

WolfLord: 我想Filiaslayers可能誤會我前篇所說的可攜性與通用性 07/09 21:50
WolfLord: 的意義了...我是System builder所以用什麼init對我而言 07/09 21:51
WolfLord: 意義重大,而且我的init script是有透通與可攜性需求 07/09 21:52
WolfLord: 但是,對於使用者貨運行管理員而言。系統的可攜性不在這 07/09 21:53
WolfLord: 些東西上。其實我也有幫我的客戶寫了一些shell cmd warp 07/09 21:53
WolfLord: warp什麼? 把一般傳統(COS5)的unix指令warp到新指令 07/09 21:54
WolfLord: 所以,我前篇也講了:用什麼init對中酖用戶來講差異不大 07/09 21:55
WolfLord: 事實是,只要付費。就能請人把新的系統濤整成任何你想 07/09 21:56
WolfLord: 要的OS的樣子,我也曾把RH7調整成與 NextStep相容 07/09 21:57
WolfLord: 然後把Slackware11偽裝成SunOS...基本上只要用戶願意付 07/09 21:58
WolfLord: 錢,偽裝成Windows我都可以幹.. :) 07/09 21:59
WolfLord: 或運行 終端 07/09 22:01

WolfLord 屬於很務實派的。


※ 編輯: kenduest (122.117.154.222), 07/09/2016 23:56:06

你可能也想看看

搜尋相關網站