29170


Ubuntu システムの初期化処理として何が行われるのかを理解したくなりました。

自分の理解ですと、システムのスタート時、 init プロセスが最初に起動されるプロセスで、このプロセスからすべてのその他プロセスを fork
していくのだと理解しています。init プロセスの実体は /sbin/init
ではないかとあたりをつけ、中身をのぞこうとしたのですが、これはバイナリでした。

init が中身で何をやっているのかを確認したいのですが、そのソースはどうやったら or どこから取得できますか？


CC BY-SA 3.0
2016-09-26T06:55:56.127
29137
2016-09-27T03:29:00.683
754
question
linux ubuntu
init プログラムの中身を確認したい


<https://stackoverflow.com/questions/15564638> によると  
\- 何種類もの `/sbin/init` があって distro によって異なる  
\- 昔からあるのは `sysvinit` だが最近は使われていない傾向にある  
\- 現時点では `upstart` なものが多い `ubuntu` 14 はこれ。  
\- `systemd` に移行しようとしている distro が増えている

* * *

`ubuntu` も 15 以後で `systemd` に移行するかどうか議論中との事。

とりあえず `upstart` のソースコードが欲しいのなら  
<http://upstart.ubuntu.com/>


CC BY-SA 3.0
2016-09-27T01:47:39.210
29164
2016-09-27T01:47:39.210
2017-05-23T12:38:56.083
-1
8589
29137
answer


現在、Ubuntu の init は Systemd です。  
（774RRさんの回答で気付きましたが、一つ前の LTS が 14.04 で現役で、Systemd のデフォルト採用は 15.04
以降ですから、Ubuntuサーバはまだ Upstart で動いている物が多いのかもしれません）

* * *

パッケージシステムによって管理されていそうなファイルは、それがどのパッケージに属しているか検索する方法があります。  
Ubuntu のような Debian 系であれば、`dpkg`コマンドです。

[code]

    dpkg -S /sbin/init
    # 所属パッケージは systemd-sysv
    
    apt show systemd-sysv
    # systemd-sysv はリンクを提供するパッケージとの事
    
    ls -l /sbin/init
    # /sbin/init -> /lib/systemd/systemd
    # 最初に確認しておく方がよい
    
    dpkg -S /lib/systemd/systemd
    # 実行ファイル本体は systemd パッケージに所属
    
[/code]


CC BY-SA 3.0
2016-09-27T03:29:00.683
29170
2016-09-27T03:29:00.683
3054
29137
answer