systemd 是一種新型init系統「譯者注:每個作業系統都有乙個啟動程式,而linux init是linux系統操作中不可缺少的程式之一。所謂的init程序,它是乙個由核心啟動的使用者級程序。核心自行啟動(已經被載入記憶體,開始執行,並已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動乙個使用者級程式init的方式,完成引導程序。所以init始終是第乙個程序(其程序編號始終為1)」,最早在fedora中使用「譯者注:據維基百科資料:最早使用 systemd 的是gentoo,最早使用並成為預設 init system 的是opensuse。」,經過調整適應了其它許多發行版,例如redhat、suse和centos。
歷史上,我們大部分人用過傳統的sysv init 初始化指令碼,它通常情況下在/etc/rc.d/init.d/資料夾下。這些指令碼呼叫守護程序二進位制**,在後台fork乙個程序。
儘管shell指令碼非常的靈活,但是很難實現像superviseing(監管)程序和並行執行命令這樣的任務。
通過對systemd的新式守護程序的介紹,我們發現systemd可以在runtime(執行時)更加簡單的監管和控制守護程序,並且簡化了監控的實現方式(implementation)。
systemctl命令是systemd團隊乙個非常好的首創。
這個命令能夠顯示更多的詳細錯誤資訊和包括啟動錯誤在內的服務執行時錯誤。systemd引入了乙個新術語:cgroups(控制組),它基本上是可被分層次安排的程序任務組。「譯者注:這裡簡單介紹一下cgroup(control group)稱為containers,containers著眼於資源的分配,利用configfs作配置。它有兩個重要概念:第一是subsystem,核心可以給程序提供的服務/資源;第二是container,乙個程序組,成員共享同樣的乙個或多個子系統分配限制。containers是分層次的,乙個container可以hold多個container。它的可取之處是建立了乙個資源分配的框架,其它開發者可以利用這個框架去開發自己的資源分配patch,比如磁碟裝置。」
如果僅僅通過原來的初始化系統,決定哪個程序是做什麼的、屬於哪個使用者的變得越來越困難。
但是通過systemd,當乙個程序派生其它程序時,這些子程序會被自動變成父程序控制組的成員,這樣一來就可以避免繼承的混亂。
Systemd學習介紹
1.systemd是什麼?systemd是一種新的linux系統服務管理器。d daemon 它替換了init系統,能夠管理系統啟動過程和一些系統服務,一旦啟動起來,就將監管整個系統。傳統的init程序啟動方式的兩大弊端 一是啟動時間長。序列啟動 二是啟動指令碼複雜。systemd 並行啟動服務,按...
使用Systemd包裝SpringBoot應用
為應用建立乙個service檔案 unit description springboot rest service service user ubuntu 要執行程式的路徑 呼叫jar檔案的shell執行檔案 succes itstatus 143 timeoutstopsec 10 restart...
systemd服務內容詳解
systemd服務內容詳解 systemd是linux下的一種init軟體,由lennart poettering帶頭開發,並在lgpl 2.1及其後續版本許可證下開源發布。其開發目標是提供更優秀的框架以表示系統服務間的依賴關係,並依此實現系統初始化時服務的並行啟動,同時達到降低shell的系統開銷...