アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年09月
≪08月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30    10月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Ubuntu TIPS集(サービスの管理)
Ubuntu 10.04 Beta 版で不要なサービスを停止してみる。では、サービス(デーモン)を OS 起動時に開始したりするというお話が出ました。

せっかくサービスに関するお話が出たので、サービスを管理する方法をまとめてみます。


【サービスの起動・停止】
Ubuntu では、手動でサービスを起動、停止させるための初期化スクリプトは通常、「/etc/init.d/<サービス名>」配下に配置します。
例えば、「ntp」の初期化スクリプトであれば「/etc/init.d/ntp」となります。

ですので、手動でのサービス開始、停止は、この「/etc/init.d/<サービス名>」に開始、停止などのオプションを与えて行います。
なお、サービスの開始、停止は root 権限が必要になるので、「sudo」で実行します。

<例: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 は一部のサービスでは使用できない場合もあります。

普段はセキュリティのため停止しておき、必要なときだけ開始したいなど、手動でサービスを制御する場合に、初期化スクリプトを呼び出します。
また、設定ファイルを変更した後、変更内容を反映させるために再起動を使用します。
(停止して、その後、起動しても結果は同じですが、面倒なので、再起動を使います)

また、「service」というコマンドユーティリティでも同様の操作を行うことができます。
「service」は初期化スクリプトを呼び出しているだけなんですけどね。

初期化スクリプトはデストリビューションによって、配置される場所が変わりますが、「service」はデストリビューションに対応した初期化スクリプトの場所を把握しているので、はじめて使うデストリビューションや初期化スクリプトの位置が分からない場合には役に立ちます。


<例:NTP サービスを開始(service を使用)>
$ sudo service ntp start
* Starting NTP server ntpd [ OK ]




【OS 起動時のサービス開始・停止】
セキュリティを考慮すれば、サービスは必要な時だけ起動するというのがいいといえるでしょう。
必要ない時は停止しておき、必要な時だけ開始するという手動の開始・停止のが理想です。

ですが、OS 起動時にサービスを開始させ、常時起動させておく必要がある場合もあります。

では、OS 起動時にサービスも開始、停止させるには「sysv-rc-conf」や「chkconfig」を利用します。


<例:NTP サービスを自動起動させる>
$ sudo sysv-rc-conf ntp on

<例:NTP サービスを自動起動させない>
$ sudo sysv-rc-conf ntp off

<例:NTP サービスをランレベル 2 の時に自動起動させない>
$ sudo sysv-rc-conf --level 2 ntp off

<例:NTP サービスを自動起動確認>
$ sudo sysv-rc-conf --list ntp
ntp 2:on 3:on 4:on 5:on
$ sudo chkconfig --list ntp
ntp 0:off 1:off 2:on 3:on 4:on 5:on 6:off

「chkconfig」は 初期化スクリプトに初期化情報が記述されていないサービスだと、エラーになる場合があります。
(厳密には、「chkconfig」が「insserv」を呼び出し、「insserv」がチェックしてエラーを吐き出しているようです)
ですので、on/off 変更は「sysv-rc-conf」を使いましょう。

個人的には、「sysv-rc-conf --list」の出力が見にくいので、「sysv-rc-conf」は嫌いなので、on/off は「sysv-rc-conf」、確認は「chkconfig」を使ってます。

サーバアプリケーションのインストールを行うと、多くのサーバアプリケーションは「OS 起動時にサービスも自動起動する設定」でインストールされます。
インストールだけで、起動・停止は手動で行いたい場合、「sysv-rc-conf」や「chkconfig」で自動起動する設定なのかを確認して、必要であれば設定を変更します。

Ubuntu(というか、Linux全般)はランレベルごとに実行されるスクリプトを「/etc/rc[0-6].d/」(0-6はそれぞれのランレベル、デストリビューションによってディレクトリは変わる)で保持します。
ランレベル 2 だと、「/etc/rc2.d/」配下のスクリプトが実行されます。

OS 起動時に自動で起動・停止する設定は「/etc/rc[0-6].d/」のスクリプトを配置する・しない(正確には起動スクリプト「/etc/init.d/<サービス名>」のシンボリックリンク)で行います。
ですので、「/etc/rc[0-6].d/」へスクリプトを手動で配置すれば、自動起動の設定も行えます。
(手動は間違う可能性もあるし、面倒ですけどね。。。)






これくらいで、サービスの起動・停止、OS 起動時のサービス自動起動の管理ができることでしょう。
どのようにして、Linux が OS 起動時にサービスを開始しているかを理解しておけば、いろいろと制御ができます。
ですので、きっと役に立つことでしょう。
(このあたりは奥が深いですけどね。。。)


コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

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