SlideShare a Scribd company logo
1 of 15
2016/02/27(Sat), 38th CBUG meeting
Debianのstart-stop-daemonがLXC対応じゃないので
いじってたら
何故かkFreeBSDも触ることになった的な話
Genta IHA
38th CBUG Meeting
LXCとは
• Linuxのjailっぽいあれ。namespaces(7)使う。詳細
google
• IPC namespace
• network namespace (FIBとか分離するやつ)
• pid namespace — pid_namespaces(7)
• user namespace (uid / gid分離)
• uts namespace (ホスト名 / NIS domain name分離)
2
←今日この話
38th CBUG Meeting
問題
• LXCコンテナを100個くらい上げました
• 監視したくなり、LXCホスト側でsnmpd上げました
• コンテナも監視したくなり、snmpd上げました
• LXCホスト側で/etc/init.d/snmpd restartしました
→ LXCコンテナ内の snmpd が全滅しました(!)
3
38th CBUG Meeting
なぜか
• /etc/init.d/snmpd で呼ばれている start-stop-daemon
がPID namespace分離に対応していなかった
• /etc/init.d/snmpd restart すると、killall snmpdする
• コンテナ内のプロセスも、親からは見えるので、も
れなく滅亡する
4
38th CBUG Meeting
回避策
• /sbin/start-stop-daemon に —pid-file <FILE_NAME>
を指定すると、そのPIDだけ相手にしてくれるので回
避できる (何も指定しないと killall 相当をしてくれる)
• 手元では /etc/init.d/snmpd を修正して回避した
• start-stop-daemonがPID namespace分離に対応する
のが正しい気がする (FreeBSDの/etc/rc.subrはJail ID
見てる)
5
38th CBUG Meeting
パッチ
• dpkgという名前のdpkgパッケージにstart-stop-
daemon入ってる
• ちょっといじったら、Linux対応 (/proc/<PID>/ns/pid
も見るだけ) のものはできた
• が、コード中に不穏な文字列が…
• #if defined (OSFreeBSD)
6
38th CBUG Meeting
GNU/kFreeBSD用だった
• kFreeBSDも触らなければならないか… (入れた)
• /proc/<PID>/ns/pid は見えない (カーネルはFreeBSD
だしpid namespace分離はLinuxカーネルの機能だし
当然)
• あぁこれjail id取らないとだめなやつや…
7
38th CBUG Meeting
s-s-dをPID名前空間対応する
8
Linuxにはjail idという概念は存在しない(つらい)
「/proc/PID/ns/pid のinodeが同じなら同じnamespace」
ということだけは決まっている
38th CBUG Meeting
s-s-dをPID名前空間対応する
9
38th CBUG Meeting
s-s-dをPID名前空間対応する
10
自分のjail ID(的なもの)を確認
同じjail ID(というものはない)
のやつだけ対象にする
38th CBUG Meeting
jail ID(というものは略)の確認
11
/proc/PID/ns/pidのinode取るだけ
Linuxなのでjail IDというものはない
38th CBUG Meeting
jail ID(というものはある)確認
12
sysctl叩いてjid取ってるだけ
これでいいんだっけ…
(動作未確認)
FreeBSDなのでjail IDがある
kvm_getprocs使うべき?→sysctlでいいらしい
38th CBUG Meeting
要調査
• /lib/lsb/init-functions の pidof(8) を呼んでいる箇所で
pidof -c を呼ぶようにすればだいたい救えるのでは?
• -cで救える理由: コンテナは大抵 chroot するから
• CentOS だと pidof -c 指定している
• Ubuntu / Debian は -c ついてない
• 他のOSのPID namespace分離的な実装(Solaris)対応?
13
38th CBUG Meeting
TODO
• kFreeBSD jail環境での動き確認する (多分うごくけど
)
• バグレポート書く (英語…)
14
38th CBUG Meeting
見なかったことにしたい
15

More Related Content

What's hot

Shinjuku.rs #14 userland-ioの紹介
Shinjuku.rs #14 userland-ioの紹介Shinjuku.rs #14 userland-ioの紹介
Shinjuku.rs #14 userland-ioの紹介Akira Hayakawa
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能Akihiro Suda
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentookubo39
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouchYohei Sasaki
 
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイントLinuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイントuchan_nos
 
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなしRubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなしMasaki Matsushita
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話nullnilaki
 
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10Akihiro Suda
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかaxsh co., LTD.
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell scriptMasami Hiramatsu
 
Git リモートへの道
Git リモートへの道Git リモートへの道
Git リモートへの道Koudai Takahasi
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話Masaru Oki
 
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Masaru Oki
 
Traffic Management with Istio ( with Demo )
Traffic Management with Istio ( with Demo )Traffic Management with Istio ( with Demo )
Traffic Management with Istio ( with Demo )ロフト くん
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 

What's hot (20)

Shinjuku.rs #14 userland-ioの紹介
Shinjuku.rs #14 userland-ioの紹介Shinjuku.rs #14 userland-ioの紹介
Shinjuku.rs #14 userland-ioの紹介
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
 
Unixアレコレ調べたい2
Unixアレコレ調べたい2Unixアレコレ調べたい2
Unixアレコレ調べたい2
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイントLinuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
 
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなしRubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話
 
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
 
Fn project爆誕
Fn project爆誕Fn project爆誕
Fn project爆誕
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんか
 
Nbug201503
Nbug201503Nbug201503
Nbug201503
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell script
 
Git リモートへの道
Git リモートへの道Git リモートへの道
Git リモートへの道
 
Docker やってみた
Docker やってみたDocker やってみた
Docker やってみた
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
 
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Using rump on NetBSD 7.0
Using rump on NetBSD 7.0
 
Traffic Management with Istio ( with Demo )
Traffic Management with Istio ( with Demo )Traffic Management with Istio ( with Demo )
Traffic Management with Istio ( with Demo )
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
DPDKを拡張してみた話し
DPDKを拡張してみた話しDPDKを拡張してみた話し
DPDKを拡張してみた話し
 

Viewers also liked

言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10Kenta Hattori
 
分散システム第7章(前半)
分散システム第7章(前半)分散システム第7章(前半)
分散システム第7章(前半)Kenta Hattori
 
取り残されたIt未開の地
取り残されたIt未開の地取り残されたIt未開の地
取り残されたIt未開の地Kenta Hattori
 
38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan
38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan
38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, JapanGenta Iha
 
言語処理系入門4
言語処理系入門4言語処理系入門4
言語処理系入門4Kenta Hattori
 
40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)
40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)
40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)Genta Iha
 
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料July Tech Festa 2014発表資料
July Tech Festa 2014発表資料Kenta Hattori
 
言語処理系入門€7
言語処理系入門€7言語処理系入門€7
言語処理系入門€7Kenta Hattori
 
分散システム第7章(後半)
分散システム第7章(後半)分散システム第7章(後半)
分散システム第7章(後半)Kenta Hattori
 
言語処理系入門€5
言語処理系入門€5言語処理系入門€5
言語処理系入門€5Kenta Hattori
 
言語処理系入門€2
言語処理系入門€2言語処理系入門€2
言語処理系入門€2Kenta Hattori
 
言語処理系入門€8
言語処理系入門€8言語処理系入門€8
言語処理系入門€8Kenta Hattori
 
私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋
私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋
私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋Genta Iha
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1Kenta Hattori
 
言語処理系入門€9
言語処理系入門€9言語処理系入門€9
言語処理系入門€9Kenta Hattori
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3Kenta Hattori
 
言語処理系入門€6
言語処理系入門€6言語処理系入門€6
言語処理系入門€6Kenta Hattori
 
Net opscoding#4発表資料
Net opscoding#4発表資料Net opscoding#4発表資料
Net opscoding#4発表資料Kenta Hattori
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 

Viewers also liked (20)

言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
 
分散システム第7章(前半)
分散システム第7章(前半)分散システム第7章(前半)
分散システム第7章(前半)
 
取り残されたIt未開の地
取り残されたIt未開の地取り残されたIt未開の地
取り残されたIt未開の地
 
38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan
38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan
38th CBUG meeting opening ("Welcome to CBUG!"), Feb 27 2016, Tokyo, Japan
 
言語処理系入門4
言語処理系入門4言語処理系入門4
言語処理系入門4
 
40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)
40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)
40th CBUG meeting opening ("Welcome to CBUG!") (at Asahi Net)
 
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
 
言語処理系入門€7
言語処理系入門€7言語処理系入門€7
言語処理系入門€7
 
分散システム第7章(後半)
分散システム第7章(後半)分散システム第7章(後半)
分散システム第7章(後半)
 
言語処理系入門€5
言語処理系入門€5言語処理系入門€5
言語処理系入門€5
 
言語処理系入門€2
言語処理系入門€2言語処理系入門€2
言語処理系入門€2
 
言語処理系入門€8
言語処理系入門€8言語処理系入門€8
言語処理系入門€8
 
私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋
私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋
私とscreen (@第30回CBUG Meeting) 2014/5/17(土)@池袋
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
 
言語処理系入門€9
言語処理系入門€9言語処理系入門€9
言語処理系入門€9
 
Introduction to PEG
Introduction to PEGIntroduction to PEG
Introduction to PEG
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3
 
言語処理系入門€6
言語処理系入門€6言語処理系入門€6
言語処理系入門€6
 
Net opscoding#4発表資料
Net opscoding#4発表資料Net opscoding#4発表資料
Net opscoding#4発表資料
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 

Similar to Debianのstart-stop-daemonがLXC対応じゃないのでいじってたら何故かkFreeBSDも触ることになった話

Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾外道 父
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Kazuo Asano (@kazuo_asa)
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKensuke Maeda
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみましたShuntaro Saiba
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Takenori Matsumoto
 
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!h2so5
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話Kouhei Maeda
 
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性Yusaku Watanabe
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)l_b__
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2tamtam180
 
Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)tamtam180
 
Debianで組み込み環境
Debianで組み込み環境Debianで組み込み環境
Debianで組み込み環境Youhei SASAKI
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたことMITSUNARI Shigeo
 
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介Kentaro Mitsuyasu
 

Similar to Debianのstart-stop-daemonがLXC対応じゃないのでいじってたら何故かkFreeBSDも触ることになった話 (20)

Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
Linux Namespaces
Linux NamespacesLinux Namespaces
Linux Namespaces
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門
 
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
 
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)
 
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoFretrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
 
Debianで組み込み環境
Debianで組み込み環境Debianで組み込み環境
Debianで組み込み環境
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
 
自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介自宅スケーラブル・ファイルシステムのご紹介
自宅スケーラブル・ファイルシステムのご紹介
 
Redis速習会@Wantedly
Redis速習会@WantedlyRedis速習会@Wantedly
Redis速習会@Wantedly
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: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 UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: 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 Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介: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...Toru Tamaki
 

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: 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
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/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 カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: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...
 

Debianのstart-stop-daemonがLXC対応じゃないのでいじってたら何故かkFreeBSDも触ることになった話

  • 1. 2016/02/27(Sat), 38th CBUG meeting Debianのstart-stop-daemonがLXC対応じゃないので いじってたら 何故かkFreeBSDも触ることになった的な話 Genta IHA
  • 2. 38th CBUG Meeting LXCとは • Linuxのjailっぽいあれ。namespaces(7)使う。詳細 google • IPC namespace • network namespace (FIBとか分離するやつ) • pid namespace — pid_namespaces(7) • user namespace (uid / gid分離) • uts namespace (ホスト名 / NIS domain name分離) 2 ←今日この話
  • 3. 38th CBUG Meeting 問題 • LXCコンテナを100個くらい上げました • 監視したくなり、LXCホスト側でsnmpd上げました • コンテナも監視したくなり、snmpd上げました • LXCホスト側で/etc/init.d/snmpd restartしました → LXCコンテナ内の snmpd が全滅しました(!) 3
  • 4. 38th CBUG Meeting なぜか • /etc/init.d/snmpd で呼ばれている start-stop-daemon がPID namespace分離に対応していなかった • /etc/init.d/snmpd restart すると、killall snmpdする • コンテナ内のプロセスも、親からは見えるので、も れなく滅亡する 4
  • 5. 38th CBUG Meeting 回避策 • /sbin/start-stop-daemon に —pid-file <FILE_NAME> を指定すると、そのPIDだけ相手にしてくれるので回 避できる (何も指定しないと killall 相当をしてくれる) • 手元では /etc/init.d/snmpd を修正して回避した • start-stop-daemonがPID namespace分離に対応する のが正しい気がする (FreeBSDの/etc/rc.subrはJail ID 見てる) 5
  • 6. 38th CBUG Meeting パッチ • dpkgという名前のdpkgパッケージにstart-stop- daemon入ってる • ちょっといじったら、Linux対応 (/proc/<PID>/ns/pid も見るだけ) のものはできた • が、コード中に不穏な文字列が… • #if defined (OSFreeBSD) 6
  • 7. 38th CBUG Meeting GNU/kFreeBSD用だった • kFreeBSDも触らなければならないか… (入れた) • /proc/<PID>/ns/pid は見えない (カーネルはFreeBSD だしpid namespace分離はLinuxカーネルの機能だし 当然) • あぁこれjail id取らないとだめなやつや… 7
  • 8. 38th CBUG Meeting s-s-dをPID名前空間対応する 8 Linuxにはjail idという概念は存在しない(つらい) 「/proc/PID/ns/pid のinodeが同じなら同じnamespace」 ということだけは決まっている
  • 10. 38th CBUG Meeting s-s-dをPID名前空間対応する 10 自分のjail ID(的なもの)を確認 同じjail ID(というものはない) のやつだけ対象にする
  • 11. 38th CBUG Meeting jail ID(というものは略)の確認 11 /proc/PID/ns/pidのinode取るだけ Linuxなのでjail IDというものはない
  • 12. 38th CBUG Meeting jail ID(というものはある)確認 12 sysctl叩いてjid取ってるだけ これでいいんだっけ… (動作未確認) FreeBSDなのでjail IDがある kvm_getprocs使うべき?→sysctlでいいらしい
  • 13. 38th CBUG Meeting 要調査 • /lib/lsb/init-functions の pidof(8) を呼んでいる箇所で pidof -c を呼ぶようにすればだいたい救えるのでは? • -cで救える理由: コンテナは大抵 chroot するから • CentOS だと pidof -c 指定している • Ubuntu / Debian は -c ついてない • 他のOSのPID namespace分離的な実装(Solaris)対応? 13
  • 14. 38th CBUG Meeting TODO • kFreeBSD jail環境での動き確認する (多分うごくけど ) • バグレポート書く (英語…) 14