SE&ビジネスパーソンとしてお勉強中なブログ

スポンサーサイト

--/--/-- -- [Edit]

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Debianの起動とランレベルの整理 [Linux(Debian)]

2008/02/11 Mon [Edit]

目標:Debianの起動とランレベルの整理
OS:Debian GNU/Linux 3.1(coLinux)




1.ランレベル

ランレベル - システムの動作状態を表すモード。

Debianの場合
 0 = 停止
 1 = シングルユーザーモード
 2 = マルチユーザーモード
 3 = 2に同じ
 4 = 2に同じ
 5 = 2に同じ
 6 = 再起動

・現在のランレベルを表示するコマンド「runlevel」
・ランレベルを変更するコマンド「init」もしくは「telinit」

# runlevel
N 2

1個目の値が直前のランレベル(ランレベルが変えられたことがないのでN)
2が現在のランレベル(Debianのデフォルトのランレベルが2)
起動時のランレベルは/etc/inittabを変えることで可能。

# init 3
# runlevel
2 3
# init 2
# runlevel
3 2



Linuxの起動時にinitコマンドが実行され、/etc/inittabに
指定されているデフォルトレベルで起動されます。


inittabの抜粋
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel.
id:2:initdefault:


2の部分を望みのランレベルの変更にすれば起動時のランレベルが変わります。
0や6を指定すると起動できなくなってしまうので注意。


2.Debianの起動プロセス


(1)ブートプロセス
起動時にinitプログラムが最初に実行するスクリプトが/etc/init.d/rcSです。
これは、init 用の設定ファイル (/etc/inittab) に記述されています。

inittabの抜粋
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

/etc/init.d/rcSは、/etc/rcS.d/ にあるスクリプト全てを起動します。


(2)ランレベル毎の起動スクリプト

ブートプロセス完了後、init は デフォルトのランレベルで
起動されるように設定された全てのサービスを起動します。

デフォルトのランレベルは、先述の通り/etc/inittabの指定によって決まります。
そして、ランレベルに応じたディレクトリ(rc1.d~rc6.d)内の起動スクリプトを実行します。

ランレベルが2ならば、rc2.d内のスクリプトが全て実行されます。


通常、起動スクリプトは全て/etc/init.dに集めておき、ランレベルに応じたディレクトリ
rc1.d~rc6.dにそのランレベルに必要な起動スクリプトのシンボリックリンクを作成しておきます。

先頭が"S"で始まる物が起動(Start)、"K"で始まる物が停止(Kill)で、
"S"や"K"の後に続く数字順に実行されます。

例)S20inetd

3.daemon の起動設定

新たに起動/終了スクリプトを追加、あるいは削除するのに
いちいち各ランレベルにシンボリックリンクを作成していくのは面倒です。

Debianでは、"update-rc.d"というコマンドが用意されています。

マニュアルから抜粋
書式
update-rc.d [-n] [-f] name remove
update-rc.d [-n] [-f] name defaults [NN | NN-start NN-stop]
update-rc.d [-n] [-f] name start|stop NN runlevel runlevel ... . start|stop NN
runlevel runlevel ... . ...

説明
一般にデーモンのようなシステムサービスの起動、停止に使用される。
runlevel には init がサポートするラン レベル数 0123456789S のうちのひとつを指定する。
NN は 2桁の数字であり、init がスクリプトを実行する順序を決めるために使用する。

defaults が使用された場合、 update-rc.d はランレベル 2345に サービスの起動用リンクを、
ランレベル 016 にサービスの停止用リンクを作成する。

remove オプションを引数に与えると、 /etc/rcrunlevel.d ディレクトリにあるスクリプト
/etc/init.d/name へのリンクをすべて削除する。
スクリプトはあらかじめ削除されていなくてはならない。

オプション
-n 実際の動作を表示するだけで、何もしない。
-f /etc/init.d/name が存在しいても、強制的にシンボリッ
クリンクを削除する。

詳細はやっぱりマニュアル参照です。


(1)新規にサービスを追加する場合
 a) /etc/init.d/にスクリプト作成。
ここではhttpd2というWebサーバー用のスクリプトを作成。
パーミッションを755にします。

 b)update-rc.d httpd2 defaults
 各ランレベルにS20httpd2やK20httpd2が作成されます。
 
Adding system startup for /etc/init.d/httpd2 ...
/etc/rc0.d/K20httpd2 -> ../init.d/httpd2
/etc/rc1.d/K20httpd2 -> ../init.d/httpd2
/etc/rc6.d/K20httpd2 -> ../init.d/httpd2
/etc/rc2.d/S20httpd2 -> ../init.d/httpd2
/etc/rc3.d/S20httpd2 -> ../init.d/httpd2
/etc/rc4.d/S20httpd2 -> ../init.d/httpd2
/etc/rc5.d/S20httpd2 -> ../init.d/httpd2

(2)サービスを削除する場合

#update-rc.d -f httpd2 remove
----全てのRunLevelからhttpd2のリンクを削除します。


Prev
FireFox 「ページのソースを開く」からソースをエディタで見る方法 [FireFox]
Top
SE&ビジネスパーソンとしてお勉強中なブログ
Next
Apache2をコンパイルしてインストールする [Linux(Debian)][Apache2]

Comments

 
 
 
 
 
 
 
  非公開コメント
 

Track Backs

TB URL 

Top
SE&ビジネスパーソンとしてお勉強中なブログ

ブログ内検索

カテゴリー

最近の記事

最近のコメント

最近のトラックバック

RSSリンク

Amazon

楽天 人気商品

なかのひと

iKnow

Dictationバッジ

合わせて

あわせて読みたいブログパーツ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。