SlideShare une entreprise Scribd logo
1  sur  15
全新的 Linux 一號行程--
systemd
by Freedman
2014-03-04
Q__
f"_<
○ ○▽ ............. 自由車上自由人
常見的一號行程
● init:
debian, archlinux ~2012-10-12, BSD...
● upstart:
Ubuntu 6.10~, Fedora 9~14
● systemd:
Fedora 15~, archlinux 2012-10-13~,
Mageia 2, Mandriva 2011, openSUSE 12.1~
常見的系統開機過程
GRUB/LILO/...
載入系統
核心以 Initrd 設定系統
Init Systemd
Init
(upstart)
SysV int | Systemd
prefdm
gdm kdm...
mingetty...
gnome
PowerOn
BootLoader
Splash
Kernel
InitRAMFS
Init
Services
(Runlevel)
mate sugar xsession... kde startx
systemd 專案
●
由 Lennart Poettering 與 Kay Sievers 開發
●
Linux 上的系統與服務管理程式
●
可以相容、取代 init
●
主要效益:快速啟動、服務程式的線上抽換
●
以 LGPL v2.1+ 發行
●
已經在很多 Linux 發行版中被採用
運作概念
● init:
設定檔是文件和 shell 腳本,以啟動各種行程為系
統的運作概念
– /etc/inittab /etc/init.d /etc/rc[0~6].d/
● upstart:
基於事件,在事件發生時啟動各種程式,還能支援
變動的硬體環境
– /etc/init/ (/etc/event.d/)
● systemd:
基於 socket, 先將各種服務的 socket 建立,然後
各種程式可以同時啟動
systemd 架構圖
圖片取自維基百科 http://zh.wikipedia.org/wiki/File:Systemd_components.svg
systemd 的特色
●
啟動速度較快
– 不使用 shell script
– 各服務平行啟動(只在 SSD 上才會加快)
●
提供系統服務快照
●
掛載及自動掛載管理
●
以事務系統 (transaction) 處理相依服務
●
服務的無感即時更新、重新啟動與暫時結束
●
使用 Linux 核心 cgroup 功能進行管理
Target vs. Runlevel
SysVinit systemd
init 0 systemctl poweroff
init 1 systemctl isolate rescue.target
init 3 systemctl isolate multi-user.target
init 5 systemctl isolate graphical.target
init 6 systemctl reboot
●
以目標取代執行等級的概念
●
相關檔案:
– /lib/systemd/system/*.target
– /etc/systemd/system/default.target
systemd 的設定檔
位置:
/lib/systemd/
/lib/systemd/system/
/etc/systemd/
/etc/systemd/system/
主要類型:
XXX.target
XXX.service
XXX.socket
這些檔案由建構整個
發行版的工程師們撰
寫,一般的系統管理
員通常不需要自行修
改。
default.target → graphic.target
[Unit]
Description=Graphical Interface
Documentation=man:systemd.special(7)
Requires=multi-user.target
After=multi-user.target
Conflicts=rescue.target
Wants=display-manager.service
AllowIsolate=yes
[Install]
Alias=default.target
iscsid.service
[Unit]
Description=Open-iSCSI
Documentation=man:iscsid(8) man:iscsiadm(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=network.target iscsiuio.service
Before=remote-fs-pre.target
[Service]
Type=forking
PIDFile=/var/run/iscsid.pid
ExecStart=/usr/sbin/iscsid
ExecStop=/sbin/iscsiadm -k 0 2
[Install]
WantedBy=multi-user.target
iscsid.socket
[Unit]
Description=Open-iSCSI iscsid Socket
Documentation=man:iscsid(8) man:iscsiadm(8)
[Socket]
ListenStream=@ISCSIADM_ABSTRACT_NAMESPA
CE
[Install]
WantedBy=sockets.target
啟動的比較
其他相關命令與套件
●
服務的管理
systemctl start/stop/restart foo.service
立刻啟動、重新啟動或停止服務
systemctl status foo.service 查看服務狀態
systemctl enable/disable foo.service
設定使用或不使用某服務(只會設定在目前的 target )
●
分析工具: systemd-analyze 套件
systemd-analyze blame 列出最耗時的
systemd-analyze plot > out.svg 製作時序圖
參考資料
● systemd man page
●
鳥哥的私房菜
http://linux.vbird.org/linux_basic/0510osloader.php#startup_init
● Itsmw http://myip.tw/itsmw/index.php?title=Upstart
● systemd System and Service Manager
http://www.freedesktop.org/wiki/Software/systemd/
● Systemd/zh-hant - The Chakra Project
http://www.chakra-project.org/wiki/index.php?title=Systemd/zh-hant#.E4.BD.BF.E7.94.A8_systemd
● (=..=)/: systemd-analyze
http://xatierlike.blogspot.tw/2013/01/systemd-analyze.html

Contenu connexe

Tendances

Windows引导过程
Windows引导过程Windows引导过程
Windows引导过程Mike Wang
 
Linux基础
Linux基础Linux基础
Linux基础zhuqling
 
Cassandra运维之道(office2003)
Cassandra运维之道(office2003)Cassandra运维之道(office2003)
Cassandra运维之道(office2003)haiyuan ning
 
尚观Linux研究室 linux驱动程序全解析
尚观Linux研究室   linux驱动程序全解析尚观Linux研究室   linux驱动程序全解析
尚观Linux研究室 linux驱动程序全解析hangejnu
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略Da Zhao
 
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux introChang Mt
 
版本控制 - Mercurial
版本控制 - Mercurial版本控制 - Mercurial
版本控制 - MercurialCheyin L
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案Louis liu
 
20030623 linuxbasic and-security
20030623 linuxbasic and-security20030623 linuxbasic and-security
20030623 linuxbasic and-security建融 黃
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0jinqing zhu
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档lwj2012
 
基于PXE实现部署Linux服务器
基于PXE实现部署Linux服务器基于PXE实现部署Linux服务器
基于PXE实现部署Linux服务器ekoing
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建Liyang Tang
 
2, installation
2, installation2, installation
2, installationted-xu
 
0513 深入Windows Server 2008 系統核心
0513 深入Windows Server 2008  系統核心0513 深入Windows Server 2008  系統核心
0513 深入Windows Server 2008 系統核心Timothy Chen
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 Lheima911
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细colderboy17
 

Tendances (19)

Windows引导过程
Windows引导过程Windows引导过程
Windows引导过程
 
Linux基础
Linux基础Linux基础
Linux基础
 
Cassandra运维之道(office2003)
Cassandra运维之道(office2003)Cassandra运维之道(office2003)
Cassandra运维之道(office2003)
 
尚观Linux研究室 linux驱动程序全解析
尚观Linux研究室   linux驱动程序全解析尚观Linux研究室   linux驱动程序全解析
尚观Linux研究室 linux驱动程序全解析
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略
 
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux intro
 
版本控制 - Mercurial
版本控制 - Mercurial版本控制 - Mercurial
版本控制 - Mercurial
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
 
20030623 linuxbasic and-security
20030623 linuxbasic and-security20030623 linuxbasic and-security
20030623 linuxbasic and-security
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档
 
基于PXE实现部署Linux服务器
基于PXE实现部署Linux服务器基于PXE实现部署Linux服务器
基于PXE实现部署Linux服务器
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建
 
2, installation
2, installation2, installation
2, installation
 
0513 深入Windows Server 2008 系統核心
0513 深入Windows Server 2008  系統核心0513 深入Windows Server 2008  系統核心
0513 深入Windows Server 2008 系統核心
 
18 cpu02
18 cpu0218 cpu02
18 cpu02
 
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细
 
Linuxguide4f2e
Linuxguide4f2eLinuxguide4f2e
Linuxguide4f2e
 

Similaire à The New Process No. 1 of Linux -- SystemD

unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版Jie Bao
 
[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程NJU OPEN
 
利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版xingsu1021
 
Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linuxYiwei Ma
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on praticeKenny (netman)
 
Linux服务器服务配置说明
Linux服务器服务配置说明Linux服务器服务配置说明
Linux服务器服务配置说明Da Zhao
 
Aisanux安装光盘分析
Aisanux安装光盘分析Aisanux安装光盘分析
Aisanux安装光盘分析Guangyao Cheng
 
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境dbabc
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Yiwei Ma
 
如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10wensheng wei
 
COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習
COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習
COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習Jen Yee Hong
 
Linux系统工程师教程
Linux系统工程师教程Linux系统工程师教程
Linux系统工程师教程yiditushe
 
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuMarsZ Chen
 
讓 Asp.net 在 raspberry pi 上飛
讓 Asp.net 在 raspberry pi 上飛讓 Asp.net 在 raspberry pi 上飛
讓 Asp.net 在 raspberry pi 上飛dplayerd
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解zzc89522
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程Simon Su
 

Similaire à The New Process No. 1 of Linux -- SystemD (20)

unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版
 
[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程
 
LinuxGuide4F2E
LinuxGuide4F2ELinuxGuide4F2E
LinuxGuide4F2E
 
利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版
 
Gentoo linux
Gentoo linuxGentoo linux
Gentoo linux
 
Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linux
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
 
Linux服务器服务配置说明
Linux服务器服务配置说明Linux服务器服务配置说明
Linux服务器服务配置说明
 
Aisanux安装光盘分析
Aisanux安装光盘分析Aisanux安装光盘分析
Aisanux安装光盘分析
 
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
 
GT130M
GT130MGT130M
GT130M
 
如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10
 
COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習
COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習
COSCUP 2019 國際開放原始碼專案經營 - 從失敗中學習
 
Linux系统工程师教程
Linux系统工程师教程Linux系统工程师教程
Linux系统工程师教程
 
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
 
讓 Asp.net 在 raspberry pi 上飛
讓 Asp.net 在 raspberry pi 上飛讓 Asp.net 在 raspberry pi 上飛
讓 Asp.net 在 raspberry pi 上飛
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解
 
Ipaq with linux
Ipaq with linuxIpaq with linux
Ipaq with linux
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
 

The New Process No. 1 of Linux -- SystemD