SlideShare a Scribd company logo
1 of 23
Download to read offline
systemdを始めよう
PFIセミナー
Preferred Networks
柏原秀蔵
2014年年12⽉月18⽇日
⾃自⼰己紹介
l  柏原秀蔵 (@suma90h)
l  最近:Go⾔言語を書くことも
l  最近の活動
l  システム系論論⽂文輪輪読会  主宰(平⽇日夜、休⽇日昼  開催)
l  お菓⼦子作りもたまにやってます
2
3
アジェンダ
l  systemdとは何か
l  systemdをなぜ学ぶのか
l  systemd紹介
l  ⾃自作デーモンの追加⽅方法
l  なぜsystemdでコミュニティが荒れるのか
l  まとめ
4
systemdとは何か
l  initであるSysV init/Upstartの代替となる
l  Linuxの必要デーモンや、initスクリプトなどの起動・管理理システム
l  inetd, xinetdといったデーモンの代わりの機能も持つ
l  ちなみにCentOS 6やUbuntuではUpstart
l  initに対応する他の有名なシステム
l  SolarisはSMF(Service Management Facility)
l  Mac OS X(iOS)はlaunchd
5
initのおおよそのフロー
l  ここの/sbin/init以降降をsystemdが置き換える
6	
boot loader
Linux kernel
/sbin/init
デバイスドライバの読み込み
initスクリプト起動→/sbin/init起動	
= SysV init/upstartのプログラム
ランレベルに応じて処理を切り替え
デバイスを初期化
ファイルシステムをマウント	
/etc/init.d/
サービススクリプト(デーモン)を起動
init.dの後はコンソール(tty)などなど	
Linuxカーネル (OS)の起動
systemdをなぜ学ぶ・紹介するのか
l  Red Hat Enterprise Linux 7 (CentOS7)でデフォルトで採⽤用
l  Debianでも次期バージョンjessieでsystemd採⽤用が決まっている
l  Ubuntuは創始者/リーダーのMark Shuttleworth⽒氏も採⽤用を表明
l  デフォルトでsystemd有効なディストリビューションが多い
l  Arch Linux, CoreOS, Debian, Fedora, openSUSE, Ubuntu
l  デフォルトでなくとも採⽤用が決まっているものや、現在未リリー
スでもsystemd採⽤用が決まっているものも含め総数が多い
l  これらLinuxを中⼼心に扱うのであれば対応必須の時代がくる!
l  OpenBSD向けに作られたsystemdのフォークも存在する
l  もちろん採⽤用するメリットもある
7
systemdに移⾏行行する利利点
l  起動したデーモンのプロセス監視はsystemdの役割
l  死活監視にsupervisordを⼊入れたりする必要はない
l  Unitという単位での処理理の管理理
l  service ,targetなどの種類がある
l  イベントをトリガーにして実⾏行行したり、実⾏行行の依存関係が記述可能
l  希望する順序でサービスの起動(終了了も?)ができる
l  「Systemd⼊入⾨門(1) - Unitの概念念を理理解する」が詳しい
l  initスクリプトを含め、シェルスクリプトから解放される
l  起動時間のスピードアップ
l  私が測定した数字は持ってない
l  Haruka Iwaoさんの資料料によるとRHEL6.5→7.5で29秒→10秒
8
systemdの機能
l  伝統的なSysV init/Upstartの置き換え
l  ランレベルに応じたプログラムの起動
l  サービス(デーモン)の起動
l  Unitによる各種機能の提供
l  syslogdの代替(共存可能)
l  cron, acpid, xinetdの代替(共存可能)
9
Unitの種類
l  service: デーモンの起動・管理理
l  socket: ソケットに接続(通信)があるとサービスを起動する
l  mount: ファイルシステム(リモートも)のマウント
l  automount: アクセスが発⽣生したらマウントする(automountd)
l  target: Unitをまとめて順序関係を作れるようにする
l  などなど
l  公式マニュアル:
http://www.freedesktop.org/software/systemd/man/
systemd.unit.html
10
Unitのserviceを記述する
l  ファイルを置くパス
l  /usr/lib/systemd/system/ システム標準・パッケージからはこちらへ
l  /etc/systemd/system/ 同名ファイルがあるとこちらが優先
l  ファイル
l  名前 daemon-name.service のように末尾にunitの種類を書く
l  フォーマット
l  systemdの独⾃自形式
l  Unit, Service, Installと3つのセクションがある
l  依存関係の前後、実⾏行行するコマンドライン、プロセス停⽌止時の成
功条件や、起動に失敗と⾒見見なして再起動させないオプションなど
l  Linux - systemdの*.serviceファイルの書き⽅方  - Qiita
l  http://qiita.com/masami256/items/ef0f23125cf8255e4857
11
Unitのserviceを記述する  〜~Serviceセクション〜~
l  Type
l  simple: デフォルト。プロセス起動してサービスとなるタイプ
l  forking: プロセス起動後に⾃自⾝身をフォークするタイプのデーモン。
l  oneshot: 1回だけジョブを実⾏行行
l  notify: simpleと同じだが、プログラム側からsystemdに起動し
たことの通知を送る
l  idle: simpleに似ているが、他のジョブが実⾏行行されまで待つ
(console
l  systemd (⽇日本語) - ArchWiki
l  systemd.service(5)
12
Unitのserviceを記述する 〜~sshd.service を⾒見見る〜~
13	
[Unit]
Description=OpenSSH server daemon
After=syslog.target network.target auditd.service
[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStartPre=/usr/sbin/sshd-keygen
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
Unitのserviceを制御する
サービス⼀一覧を表⽰示する
# systemctl list-units --type=service
firewalldを無効化する
# systemctl disable firewalld
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service’
firewalldを有効化する
# systemctl enable firewalld
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/
dbus-org.fedoraproject.FirewallD1.service'
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/
basic.target.wants/firewalld.service’
参考:  Systemd⼊入⾨門(2) - Serviceの操作⽅方法  - めもめも
14
systemdでログを⾒見見る
l  syslogd 相当のsystemd-journald.serviceがある
l  # journalctl コマンドでログが⾒見見れる
l  -b でブートログ
l  -k でkernel message (dmesg相当)
l  なお、RHEL7 (CentOS7)はsyslogdと共存して扱えるが、Fedora
20以降降はsyslogdはデフォルトで無効となる
15
journalctl 実⾏行行例例 (CentOS 7)
16
systemdは⼤大変荒れやすいトピック
l  開発を巡ってのトラブルがある
l  本の⾍虫: Linus様がSystemdにぶちきれる
l  http://cpplover.blogspot.jp/2014/04/linussystemd.html
l  systemdの採⽤用の有無を巡っての激しい議論論
l  Wikipedia (en)によると
l  アーキテクチャ (init script が好き派)
l  Unixの哲学(シンプルさ)に違反して機能を取り込み過ぎている
のではないか派
‒  現在Linuxのudevのソースツリーを取り込んでいる
l  systemdを使⽤用しないシステムのサポートを必須とするDebianの
⼀一般決議、不不成⽴立立となる
17
なぜsystemdでコミュニティが荒れるのか(私⾒見見含)
l  Linusは開発者を叩くが、systemd⾃自体は嫌いではない (slashdot)
l  ⼀一部のsystemd嫌いの⼈人は、誤解があると考えられる
l  作者の主張「The Biggest Myths」
l  http://0pointer.de/blog/projects/the-biggest-myths.html
l  エントリの解説があるがsystemdは
l  1. 単⼀一バイナリ(モノリシック)でない
l  2. 速いが速度度だけを求めたものではない
l  3. システムのブートが速いのはサーバに良良い
l  4. initスクリプトとの互換性もある
l  5. systemdは難しくない
l  … などなど 30まで続く
l  それでもWindwowsのsvchostに近づいているという指摘もある
18
まとめ
l  systemdについて機能・特徴を紹介した
l  近年年Linux界隈で熱い議論論を呼ぶトピックでもある
l  いつ使い始めると良良いか
l  今。今から始めても遅くないでしょう
l  RHEL7 (CentOS 7)で採⽤用され、Ubuntuも将来は採⽤用⾒見見込み
l  systemdのアーキテクチャの善悪は、⾃自分で判断してもらいたい
l  少なくとも各ディストリビューションで採⽤用される理理由はある
l  systemdを調べた感想としては、機能がたくさんあるだけあって
全て⾝身につけるには苦労しそう。つまみ⾷食いで⼗十分かも
19
参考⽂文献
20
参考⽂文献 〜~systemd概要・⼊入⾨門〜~
l  Linux⼥女女⼦子部  systemd徹底⼊入⾨門
l  http://www.slideshare.net/enakai/linux-27872553
l  Hello, systemd!
l  http://www.slideshare.net/Yuryu/hello-systemd
l  Systemd⼊入⾨門(1) - Unitの概念念を理理解する  - めもめも
l  http://d.hatena.ne.jp/enakai00/20130914/1379146157
l  systemdを本番運⽤用してわかったこと  - mixi Engineers' Blog
l  http://alpha.mixi.co.jp/entry/2013/12063/
l  【翻訳】なぜsystemdなのか?  | POSTD
l  http://postd.cc/why-systemd/
l  systemdによるCentOS 7の管理理  | Think IT(シンクイット)
l  http://thinkit.co.jp/story/2014/12/11/5388
l  The Biggest Myths
l  http://0pointer.de/blog/projects/the-biggest-myths.html
21
参考⽂文献:CoreOS
l  CoreOSに⼊入⾨門した  | SOTA
l  http://deeeet.com/writing/2014/11/17/coreos/
l  Fleetの使い⽅方,Unitファイルの書き⽅方  | SOTA
l  http://deeeet.com/writing/2014/11/20/fleet/
22
参考  〜~関連ニュース・ゴシップ〜~
l  [Phoronix] Ubuntu To Abandon Upstart, Switch To Systemd
l  http://www.phoronix.com/scan.php?
page=news_item&px=MTYwNDE
l  本の⾍虫: Linus様がSystemdにぶちきれる
l  http://cpplover.blogspot.jp/2014/04/linussystemd.html
l  systemdを使⽤用しないシステムのサポートを必須とするDebianの
⼀一般決議、不不成⽴立立となる
l  systemdをめぐる論論争の結果、「Devuan」プロジェクトがDebia
nをフォーク
l  DevuanのML「I want systemd」
l  https://lists.dyne.org/lurker/message/
20141130.125423.9da1f8c2.en.html
23

More Related Content

What's hot

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
toshi_pp
 

What's hot (20)

BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について”30分”ぐらいでわかる「Kubernetes」について
”30分”ぐらいでわかる「Kubernetes」について
 
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりましたジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
ジョブ管理でcronは限界があったので”Rundeck”を使ってハッピーになりました
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
TiDBのトランザクション
TiDBのトランザクションTiDBのトランザクション
TiDBのトランザクション
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
再考、3つの仮想デスクトップイメージ管理と比較
再考、3つの仮想デスクトップイメージ管理と比較再考、3つの仮想デスクトップイメージ管理と比較
再考、3つの仮想デスクトップイメージ管理と比較
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
Linux Namespaces
Linux NamespacesLinux Namespaces
Linux Namespaces
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
 
Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話 Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話
 

Viewers also liked

Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
Preferred Networks
 

Viewers also liked (20)

Jubatusで始める機械学習/セキュリティと機械学習
Jubatusで始める機械学習/セキュリティと機械学習Jubatusで始める機械学習/セキュリティと機械学習
Jubatusで始める機械学習/セキュリティと機械学習
 
ディープラーニングが活かすIoT
ディープラーニングが活かすIoTディープラーニングが活かすIoT
ディープラーニングが活かすIoT
 
Deep Learningと自然言語処理
Deep Learningと自然言語処理Deep Learningと自然言語処理
Deep Learningと自然言語処理
 
Chainerで流体計算
Chainerで流体計算Chainerで流体計算
Chainerで流体計算
 
ディープラーニングの最新動向
ディープラーニングの最新動向ディープラーニングの最新動向
ディープラーニングの最新動向
 
特許をとろう (15/09/17 pfiセミナー )
特許をとろう (15/09/17 pfiセミナー )特許をとろう (15/09/17 pfiセミナー )
特許をとろう (15/09/17 pfiセミナー )
 
イノベーションことはじめ
イノベーションことはじめイノベーションことはじめ
イノベーションことはじめ
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
音声認識と深層学習
音声認識と深層学習音声認識と深層学習
音声認識と深層学習
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
 
実世界の人工知能@DeNA TechCon 2017
実世界の人工知能@DeNA TechCon 2017 実世界の人工知能@DeNA TechCon 2017
実世界の人工知能@DeNA TechCon 2017
 
IPAB2017 深層学習を使った新薬の探索から創造へ
IPAB2017 深層学習を使った新薬の探索から創造へIPAB2017 深層学習を使った新薬の探索から創造へ
IPAB2017 深層学習を使った新薬の探索から創造へ
 
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
 
ledgerで経理
ledgerで経理ledgerで経理
ledgerで経理
 
PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習
PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習
PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習
 
Pfiセミナー20131128
Pfiセミナー20131128Pfiセミナー20131128
Pfiセミナー20131128
 
Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告
 
先取り Go1.5
先取り Go1.5先取り Go1.5
先取り Go1.5
 

Similar to systemdを始めよう

2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
smokey monkey
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
 
LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)
Kazuko Itoda
 

Similar to systemdを始めよう (20)

systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンド
 
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
systemd 再入門
systemd 再入門systemd 再入門
systemd 再入門
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
 
LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)LPICレベル1技術解説セミナー(2012/11/11)
LPICレベル1技術解説セミナー(2012/11/11)
 
シンプルでシステマチックな Linux 性能分析方法
シンプルでシステマチックな Linux 性能分析方法シンプルでシステマチックな Linux 性能分析方法
シンプルでシステマチックな Linux 性能分析方法
 
Cent OS7 and RHELl7 update
Cent OS7 and RHELl7 updateCent OS7 and RHELl7 update
Cent OS7 and RHELl7 update
 
【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門 【学習メモ#8th】12ステップで作る組込みOS自作入門
【学習メモ#8th】12ステップで作る組込みOS自作入門
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
 
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwww
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
 
perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)
 
Centos7 systemd
Centos7 systemdCentos7 systemd
Centos7 systemd
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
the study of monit
the study of monitthe study of monit
the study of monit
 

More from Preferred Networks

More from Preferred Networks (20)

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
 
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
 
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
 
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
 

Recently uploaded

Recently uploaded (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

systemdを始めよう

  • 2. ⾃自⼰己紹介 l  柏原秀蔵 (@suma90h) l  最近:Go⾔言語を書くことも l  最近の活動 l  システム系論論⽂文輪輪読会  主宰(平⽇日夜、休⽇日昼  開催) l  お菓⼦子作りもたまにやってます 2
  • 3. 3
  • 4. アジェンダ l  systemdとは何か l  systemdをなぜ学ぶのか l  systemd紹介 l  ⾃自作デーモンの追加⽅方法 l  なぜsystemdでコミュニティが荒れるのか l  まとめ 4
  • 5. systemdとは何か l  initであるSysV init/Upstartの代替となる l  Linuxの必要デーモンや、initスクリプトなどの起動・管理理システム l  inetd, xinetdといったデーモンの代わりの機能も持つ l  ちなみにCentOS 6やUbuntuではUpstart l  initに対応する他の有名なシステム l  SolarisはSMF(Service Management Facility) l  Mac OS X(iOS)はlaunchd 5
  • 6. initのおおよそのフロー l  ここの/sbin/init以降降をsystemdが置き換える 6 boot loader Linux kernel /sbin/init デバイスドライバの読み込み initスクリプト起動→/sbin/init起動 = SysV init/upstartのプログラム ランレベルに応じて処理を切り替え デバイスを初期化 ファイルシステムをマウント /etc/init.d/ サービススクリプト(デーモン)を起動 init.dの後はコンソール(tty)などなど Linuxカーネル (OS)の起動
  • 7. systemdをなぜ学ぶ・紹介するのか l  Red Hat Enterprise Linux 7 (CentOS7)でデフォルトで採⽤用 l  Debianでも次期バージョンjessieでsystemd採⽤用が決まっている l  Ubuntuは創始者/リーダーのMark Shuttleworth⽒氏も採⽤用を表明 l  デフォルトでsystemd有効なディストリビューションが多い l  Arch Linux, CoreOS, Debian, Fedora, openSUSE, Ubuntu l  デフォルトでなくとも採⽤用が決まっているものや、現在未リリー スでもsystemd採⽤用が決まっているものも含め総数が多い l  これらLinuxを中⼼心に扱うのであれば対応必須の時代がくる! l  OpenBSD向けに作られたsystemdのフォークも存在する l  もちろん採⽤用するメリットもある 7
  • 8. systemdに移⾏行行する利利点 l  起動したデーモンのプロセス監視はsystemdの役割 l  死活監視にsupervisordを⼊入れたりする必要はない l  Unitという単位での処理理の管理理 l  service ,targetなどの種類がある l  イベントをトリガーにして実⾏行行したり、実⾏行行の依存関係が記述可能 l  希望する順序でサービスの起動(終了了も?)ができる l  「Systemd⼊入⾨門(1) - Unitの概念念を理理解する」が詳しい l  initスクリプトを含め、シェルスクリプトから解放される l  起動時間のスピードアップ l  私が測定した数字は持ってない l  Haruka Iwaoさんの資料料によるとRHEL6.5→7.5で29秒→10秒 8
  • 9. systemdの機能 l  伝統的なSysV init/Upstartの置き換え l  ランレベルに応じたプログラムの起動 l  サービス(デーモン)の起動 l  Unitによる各種機能の提供 l  syslogdの代替(共存可能) l  cron, acpid, xinetdの代替(共存可能) 9
  • 10. Unitの種類 l  service: デーモンの起動・管理理 l  socket: ソケットに接続(通信)があるとサービスを起動する l  mount: ファイルシステム(リモートも)のマウント l  automount: アクセスが発⽣生したらマウントする(automountd) l  target: Unitをまとめて順序関係を作れるようにする l  などなど l  公式マニュアル: http://www.freedesktop.org/software/systemd/man/ systemd.unit.html 10
  • 11. Unitのserviceを記述する l  ファイルを置くパス l  /usr/lib/systemd/system/ システム標準・パッケージからはこちらへ l  /etc/systemd/system/ 同名ファイルがあるとこちらが優先 l  ファイル l  名前 daemon-name.service のように末尾にunitの種類を書く l  フォーマット l  systemdの独⾃自形式 l  Unit, Service, Installと3つのセクションがある l  依存関係の前後、実⾏行行するコマンドライン、プロセス停⽌止時の成 功条件や、起動に失敗と⾒見見なして再起動させないオプションなど l  Linux - systemdの*.serviceファイルの書き⽅方  - Qiita l  http://qiita.com/masami256/items/ef0f23125cf8255e4857 11
  • 12. Unitのserviceを記述する  〜~Serviceセクション〜~ l  Type l  simple: デフォルト。プロセス起動してサービスとなるタイプ l  forking: プロセス起動後に⾃自⾝身をフォークするタイプのデーモン。 l  oneshot: 1回だけジョブを実⾏行行 l  notify: simpleと同じだが、プログラム側からsystemdに起動し たことの通知を送る l  idle: simpleに似ているが、他のジョブが実⾏行行されまで待つ (console l  systemd (⽇日本語) - ArchWiki l  systemd.service(5) 12
  • 13. Unitのserviceを記述する 〜~sshd.service を⾒見見る〜~ 13 [Unit] Description=OpenSSH server daemon After=syslog.target network.target auditd.service [Service] EnvironmentFile=/etc/sysconfig/sshd ExecStartPre=/usr/sbin/sshd-keygen ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
  • 14. Unitのserviceを制御する サービス⼀一覧を表⽰示する # systemctl list-units --type=service firewalldを無効化する # systemctl disable firewalld rm '/etc/systemd/system/basic.target.wants/firewalld.service' rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service’ firewalldを有効化する # systemctl enable firewalld ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/ dbus-org.fedoraproject.FirewallD1.service' ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/ basic.target.wants/firewalld.service’ 参考:  Systemd⼊入⾨門(2) - Serviceの操作⽅方法  - めもめも 14
  • 15. systemdでログを⾒見見る l  syslogd 相当のsystemd-journald.serviceがある l  # journalctl コマンドでログが⾒見見れる l  -b でブートログ l  -k でkernel message (dmesg相当) l  なお、RHEL7 (CentOS7)はsyslogdと共存して扱えるが、Fedora 20以降降はsyslogdはデフォルトで無効となる 15
  • 17. systemdは⼤大変荒れやすいトピック l  開発を巡ってのトラブルがある l  本の⾍虫: Linus様がSystemdにぶちきれる l  http://cpplover.blogspot.jp/2014/04/linussystemd.html l  systemdの採⽤用の有無を巡っての激しい議論論 l  Wikipedia (en)によると l  アーキテクチャ (init script が好き派) l  Unixの哲学(シンプルさ)に違反して機能を取り込み過ぎている のではないか派 ‒  現在Linuxのudevのソースツリーを取り込んでいる l  systemdを使⽤用しないシステムのサポートを必須とするDebianの ⼀一般決議、不不成⽴立立となる 17
  • 18. なぜsystemdでコミュニティが荒れるのか(私⾒見見含) l  Linusは開発者を叩くが、systemd⾃自体は嫌いではない (slashdot) l  ⼀一部のsystemd嫌いの⼈人は、誤解があると考えられる l  作者の主張「The Biggest Myths」 l  http://0pointer.de/blog/projects/the-biggest-myths.html l  エントリの解説があるがsystemdは l  1. 単⼀一バイナリ(モノリシック)でない l  2. 速いが速度度だけを求めたものではない l  3. システムのブートが速いのはサーバに良良い l  4. initスクリプトとの互換性もある l  5. systemdは難しくない l  … などなど 30まで続く l  それでもWindwowsのsvchostに近づいているという指摘もある 18
  • 19. まとめ l  systemdについて機能・特徴を紹介した l  近年年Linux界隈で熱い議論論を呼ぶトピックでもある l  いつ使い始めると良良いか l  今。今から始めても遅くないでしょう l  RHEL7 (CentOS 7)で採⽤用され、Ubuntuも将来は採⽤用⾒見見込み l  systemdのアーキテクチャの善悪は、⾃自分で判断してもらいたい l  少なくとも各ディストリビューションで採⽤用される理理由はある l  systemdを調べた感想としては、機能がたくさんあるだけあって 全て⾝身につけるには苦労しそう。つまみ⾷食いで⼗十分かも 19
  • 21. 参考⽂文献 〜~systemd概要・⼊入⾨門〜~ l  Linux⼥女女⼦子部  systemd徹底⼊入⾨門 l  http://www.slideshare.net/enakai/linux-27872553 l  Hello, systemd! l  http://www.slideshare.net/Yuryu/hello-systemd l  Systemd⼊入⾨門(1) - Unitの概念念を理理解する  - めもめも l  http://d.hatena.ne.jp/enakai00/20130914/1379146157 l  systemdを本番運⽤用してわかったこと  - mixi Engineers' Blog l  http://alpha.mixi.co.jp/entry/2013/12063/ l  【翻訳】なぜsystemdなのか?  | POSTD l  http://postd.cc/why-systemd/ l  systemdによるCentOS 7の管理理  | Think IT(シンクイット) l  http://thinkit.co.jp/story/2014/12/11/5388 l  The Biggest Myths l  http://0pointer.de/blog/projects/the-biggest-myths.html 21
  • 22. 参考⽂文献:CoreOS l  CoreOSに⼊入⾨門した  | SOTA l  http://deeeet.com/writing/2014/11/17/coreos/ l  Fleetの使い⽅方,Unitファイルの書き⽅方  | SOTA l  http://deeeet.com/writing/2014/11/20/fleet/ 22
  • 23. 参考  〜~関連ニュース・ゴシップ〜~ l  [Phoronix] Ubuntu To Abandon Upstart, Switch To Systemd l  http://www.phoronix.com/scan.php? page=news_item&px=MTYwNDE l  本の⾍虫: Linus様がSystemdにぶちきれる l  http://cpplover.blogspot.jp/2014/04/linussystemd.html l  systemdを使⽤用しないシステムのサポートを必須とするDebianの ⼀一般決議、不不成⽴立立となる l  systemdをめぐる論論争の結果、「Devuan」プロジェクトがDebia nをフォーク l  DevuanのML「I want systemd」 l  https://lists.dyne.org/lurker/message/ 20141130.125423.9da1f8c2.en.html 23