読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

サービスの管理

Ubuntu
起動時のサービスの開始・停止の設定です。 このサービスの管理の上でいくつかのパッケージがあると便利なのでインストールします。 $ sudo aptitude -y install chkconfig sysv-rc-conf 元々は chkconfig…RedHat系 sysv-rc-conf…Debian と分かれていましたが、Ubuntuの今のバージョンの場合両方共使えます。 どちらもサービスの管理に使えますが、個人的な感想としては、chkconfigは一覧表示に向いていて、sysv-rc-confはon/off設定に向いてます。 では使い方。例としてbind9サービスを使います。 ◆サービスを自動起動確認 $ sudo sysv-rc-conf --list bind9 bind9 0:off 1:off 2:on 3:on 4:on 5:on 6:off $ sudo chkconfig --list bind9 bind9 0:off 1:off 2:on 3:on 4:on 5:on 6:off 0 ~ 6、S がランレベルになり、「2:on」となっていれば、ランレベル 2 の時にそのサービスが起動するということになります。設定ファイルは/etc/rc*.d/です。0 ~ 6、Sまでのフォルダが確認できます。 DebianLinuxランレベル 0:システム停止  1、S:シングルユーザモードでの起動  2~5:通常起動  6:システム再起動 を表します。手動で変える時は、中のファイルを サービスの開始…ファイル名の先頭を「S」に サービスの停止…ファイル名の先頭を「K」に すればできます。が、ちまちまと面倒なのでやはりsysv-rc-confなどで設定した方が早いです。 ◆サービスを自動起動させる $ sudo sysv-rc-conf bind9 on ◆サービスを自動起動させない $ sudo sysv-rc-conf bind9 off ◆サービスをランレベル 2 の時に自動起動させない $ sudo sysv-rc-conf --level 2 bind9 off ◆サービスをランレベルで設定したい $ sudo sysv-rc-conf と入力するとチェックボックス式のGUIに近い画面が出るので、ランレベル毎ににチェックをするor外す 「chkconfig」は 初期化スクリプトに初期化情報が記述されていないサービスだと、エラーになる場合があります。(厳密には、「chkconfig」が「insserv」を呼び出し、「insserv」がチェックしてエラーを吐き出しているようです)ですので、on/off 変更は「sysv-rc-conf」を使いましょう。 ◆補足:起動時ではなく、単にサービスの開始、停止などのコマンドまとめ <例:NTP サービスを開始> $ sudo /etc/init.d/ntp start  * Starting NTP server ntpd                             [ OK ] <例:NTP サービスを停止> $ sudo /etc/init.d/ntp stop  * Stopping NTP server ntpd                             [ OK ] <例:NTP サービスを再起動> $ sudo /etc/init.d/ntp restart  * Stopping NTP server ntpd                             [ OK ]  * Starting NTP server ntpd                             [ OK ] <例:NTP サービスの状態確認> $ sudo /etc/init.d/ntp status  * NTP server is running. ※status は一部のサービスでは使用できない場合もあります。 <例:NTP サービスを開始(service を使用)> $ sudo service ntp start  * Starting NTP server ntpd                                  [ OK ] ◆補足2:ランレベル Linux全般では以下の通り。 ランレベル0 = 停止 ランレベル1 = シングルユーザーモード ランレベル2 = ネットワークなしのテキストログインモード(マルチユーザーモード) ランレベル3 = テキストログインモード(マルチユーザーモード) ランレベル4 = 未使用 ランレベル5 = GUIログインモード(マルチユーザーモード) ランレベル6 = 再起動 ただUbuntu(Debian系)は違うようで ランレベル0 = 停止 ランレベル1 = シングルユーザーモード ランレベル2 = マルチユーザーモード ランレベル3 = init2と同じ ランレベル4 = init2と同じ ランレベル5 = init2と同じ ランレベル6 = 再起動 となっています。デフォルトではこうですが、それぞれのランレベルに対する動作を自分で設定しなおすことができるようです。 ランレベルの確認は $ runlevel N 2 ランレベルの変更は $ sudo emacs -nw /etc/init/rc-sysinit.conf 14行目 env DEFAULT_RUNLEVEL=2 の部分を変更します。デフォルトだと2になっていて、しかしCUI起動でない点からLinux全般のランレベルとは違うことが確認できます。 ソース: Ubuntu 10.04 Beta 版で不要なサービスを停止してみる。 Ubuntu TIPS集(サービスの管理) 知らなかったUbuntuのランレベル Ubuntu 10.04: ランレベルを確認・変更する方法