概要:
技術的な流れ:
SystemdはCentOSディストリビューション (サーバに広く使われる)などで採用されたあと、
Ubuntu およびそれをベースにしたディストリビューションでも使われるようになっている。
systemdの動作については、たとえばこういうページを参照されたい。
スクリプトを読み解く:
出発点は、
のあたりのファイルに着目のこと。
状況を知るために
$ pstree -pn
といったコマンドを活用して下さい (他に、ps, top
といったコマンドもある)。
Upstartで使われる設定ファイルは、/etc/init の下に置かれた *.conf というファイル群で、右図のような形になっている。
emit -> イベント -> /etc/init/*.conf で
start on (...)
の行に従って 次の要素(*.conf)が起動され、
連鎖的にここに置かれたconfファイルが順々に起動されて行く。
Cf.) man upstart, man upstart-events
また、以下のようなコマンドでファイル群をチェックすることができる。
cd /etc/init
ls | less
less * # :n または Enter で次のファイル
grep emits *
grep start *
login-session-start と destop-session-start といったイベントも
emitされていることがわかるだろう (現在のZorinOSでは使われていないが)
sysv は その当時のsystemV(システム ファイブ)という バージョン名から来ている
/etc/init/rc-sysinit.conf で runlevel イベント
-> /etc/init/rc.conf に start on runlevel の行があり、
この中で /etc/init.d/rc を呼ぶ
/etc/init.d/rc の中に、
for s in /etc/rc$runlevel.d/S* ; do
....
done
という繰り返しの構文があり、
$runlevel をその時の新しいランレベル値 に置換えたディレクトリにある、各起動スクリプトを呼び出している。
X-window サーバーとクライアントの関係