Xen用起動スクリプトの整備
カテゴリ:Xen 2.0の設定
日時:2005/03/19 18:39
Gentoo LinuxでXenを自動的に起動するには、ひと手間必要。
Xenをインストールすると、/etc/init.dに起動スクリプトがコピーされる。コマンドラインから実行するだけであれば問題ないのだが、これをrc-updateでランレベルに登録してもうまく動かない。Xen標準のスクリプトは、Gentoo Linuxのものと多少書式が異なるのである(例えば、/etc/init.d/xendにはstart()関数がないなど)。
全面的にスクリプトを書き直すことも可能だが、Xenがバージョンアップして起動スクリプトの内容が変わると、そのたびにGentoo Linux用に書き直さねばならず、面倒だ。そこで、/etc/init.d/xendおよびxendomainsはそのままとし、ランレベル登録用にごく単純なラッパーをかませることにする。 まずはxend用ラッパー。
xendomains用ラッパーは、
それぞれ、/etc/init.d/xendと/etc/init.d/xendomainsを引数つきで呼び出しているだけである。また、/etc/init.d/xendomainsetはdepend()を使ってxendよりも後に起動するようにしている。xendomainsはxendの機能を使うため、xendより先には起動できないのである。
この2つのファイルに実行権を与え、
マシン起動時にドメインも起動したい場合は、/etc/xen/auto/にドメイン設定ファイルを入れておけばよい。
Xenカーネルをソースからコンパイルしたり、ドメインをゼロから作成してみたりと、遊べる要素はまだまだいろいろある。
Xenをインストールすると、/etc/init.dに起動スクリプトがコピーされる。コマンドラインから実行するだけであれば問題ないのだが、これをrc-updateでランレベルに登録してもうまく動かない。Xen標準のスクリプトは、Gentoo Linuxのものと多少書式が異なるのである(例えば、/etc/init.d/xendにはstart()関数がないなど)。
全面的にスクリプトを書き直すことも可能だが、Xenがバージョンアップして起動スクリプトの内容が変わると、そのたびにGentoo Linux用に書き直さねばならず、面倒だ。そこで、/etc/init.d/xendおよびxendomainsはそのままとし、ランレベル登録用にごく単純なラッパーをかませることにする。 まずはxend用ラッパー。
#!/sbin/runscript
start() {
echo "Starting xend"
/etc/init.d/xend start
}
stop() {
echo "Stopping xend"
/etc/init.d/xend stop
}
という内容のファイルを/etc/init.d/xendaemonとして作成する。xendomains用ラッパーは、
#!/sbin/runscript
depend() {
after xend
}
start() {
echo "Starting xendomains"
/etc/init.d/xendomains start
}
stop() {
echo "Stopping xendomains"
/etc/init.d/xendomains stop
}
という内容で/etc/init.d/xendomainsetというファイル名にする。実はファイル名など何でもよいのだが。ebeginやstart-stop-daemonを使っていない手抜きだが、気にしない。そのうちどうにかするかも。それぞれ、/etc/init.d/xendと/etc/init.d/xendomainsを引数つきで呼び出しているだけである。また、/etc/init.d/xendomainsetはdepend()を使ってxendよりも後に起動するようにしている。xendomainsはxendの機能を使うため、xendより先には起動できないのである。
この2つのファイルに実行権を与え、
# chmod +x /etc/init.d/xendaemonデフォルトランレベルに登録する。
# chmod +x /etc/init.d/xendomainset
# rc-update add xendaemon defaultこれでXenが自動的に起動する。
# rc-update add xendomainset default
マシン起動時にドメインも起動したい場合は、/etc/xen/auto/にドメイン設定ファイルを入れておけばよい。
# mv /home/xen/ttylinux.conf /etc/xen/auto/これでXen環境は一応完成。
Xenカーネルをソースからコンパイルしたり、ドメインをゼロから作成してみたりと、遊べる要素はまだまだいろいろある。