サービスの管理

Vine Linuxはさまざまなサービスが利用できるようになっています。ここでは、これらのサービスを起動するための方法を簡単に示します。ただし、それぞれの設定はどのように利用するのかによって異なりますので、ここでは述べません。マニュアルや/usr/doc/、/usr/share/doc 以下にある各パッケージのドキュメントを参照して下さい。

IV.26.1. サービスの起動と停止

各種サービスはデーモンと呼ばれるプログラムによって提供されます。これらのデーモンを起動したり停止するには、/etc/rc.d/init.d/にあるスクリプトとchkconfigコマンドによって行います。/etc/rc.d/init.d/のスクリプトはserviceコマンドを用いることで、デーモンの起動と停止をすぐに行えます。また、chkconfigコマンドはシステムを起動したときに、デーモンを起動するかどうかを設定します。

/etc/rc.d/init.d/のスクリプト

大部分のサービスの起動と停止は /etc/rc.d/init.d/ に置かれたスクリプトによって制御することができます。rootになって以下の(service_name)の所を適切な名前にすると、使い方が表示されます。

        $ /sbin/service  (service_name)
または
	$ /etc/rc.d/init.d/(service_name)

例	$ /sbin/service ypbind
	*** Usage: ypbind {start|stop|status|restart|condrestart}
          

ypbindの場合、start(起動)と、stop(停止)、status(状態の表示)、restart(再起動)、condrestart(条件付きの再起動)を行うことができます。

start stop status restart condrestart などを command (コマンド) と呼び、次のように利用します。

	    $ /sbin/service (service_name) (command)
	    
例          $ /sbin/service ypbind status
	  

サービスごとに用意されているコマンドは異なります。起動していた時に、設定ファイルなどを読み込んで反映させる reload というコマンドを使えるものもあります。

condrestart と restart

condrestart は、conditional restart を略したもので、起動しているかどうかをチェックして、起動していた場合に stop と start を実行することで再起動します停止していた場合には stop も start もせず、停止したままです

restart は、起動しているかどうかに関わらず stop と start を実行するので、もともと停止していた場合でも起動します

chkconfigコマンド

これらのサービスをシステムが起動したときからすぐに使いたい場合は、セクション IV.26.3 - chkconfigコマンドによる自動起動の設定を参照して、chkconfigコマンドを用いて設定して下さい。

インターネットサービスデーモン xinetd

アクセスコントロールなどの目的でクライアントからの接続要求の処理をサービス自身ではなく、xinetd というインターネットサービスデーモンに任せる場合があります。詳細については、xinetd のマニュアルを参照してください。

$ man xinetd

IV.26.2. ntsysvによる自動起動の設定

様々なサービスを有効にするか無効にするかを設定するには次のコマンドを実行します。

$ sudo /usr/sbin/ntsysv

UNIXではさまざまなサービスが提供されています。例えば、かな漢字変換を行うCannaサーバやWnnサーバ、プリンタデーモン、カーネルデーモンなどがあります。 サービスの設定には各サービスについての知識が必要です。 Vine Linuxでは、個人で使用する場合は標準で設定がされていますので、特に変更する必要はありません。 ネットワークで利用する場合は、NIS(YP)サーバや、DNSサーバなどを設定する必要があります。

起動するサービスにチェックを付けてください。F1キーを押すと英語ですが、説明を読むことができます。

IV.26.3. chkconfigコマンドによる自動起動の設定

セクション IV.26.2 - ntsysvによる自動起動の設定による方法ではランレベルに応じたサービスを設定することができません。細かなサービスの設定には chkconfig コマンドを用います。サービスの状態はオプション --list で知ることができます。この一覧はインストールされているパッケージにより異なります。

$ /sbin/chkconfig --list
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
pppoe           0:off   1:off   2:off   3:off   4:off   5:off   6:off
avahi-daemon    0:off   1:off   2:off   3:on    4:on    5:on    6:off
snmpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
canna           0:off   1:off   2:on    3:on    4:on    5:on    6:off
avahi-dnsconfd  0:off   1:off   2:off   3:off   4:off   5:off   6:off
smartd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
apache2         0:off   1:off   2:off   3:on    4:on    5:on    6:off
cups            0:off   1:off   2:off   3:off   4:off   5:off   6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
lpd             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off
xfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
nscd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
wnn8            0:off   1:off   2:off   3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
keytable        0:off   1:off   2:on    3:on    4:on    5:on    6:off
dpkey8          0:off   1:off   2:off   3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:off   3:on    4:on    5:on    6:off
messagebus      0:off   1:off   2:off   3:on    4:on    5:on    6:off
random          0:off   1:off   2:on    3:on    4:on    5:on    6:off
qemu            0:off   1:off   2:on    3:on    4:on    5:on    6:off
IIim            0:off   1:off   2:off   3:on    4:on    5:on    6:off
kudzu           0:off   1:off   2:off   3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
snmptrapd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
winbind         0:off   1:off   2:off   3:off   4:off   5:off   6:off
ypbind          0:off   1:off   2:off   3:off   4:off   5:off   6:off
gpm             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off

0〜6の数字はランレベル(Run Level)を示します。ランレベルについては次のセクション IV.26.4 - ランレベル (Run Level)とはを参照してください。 onはそのランレベルでサービスが提供されることを示し、offは提供されないことを示します。 例えば、かな漢字サーバ cannaはランレベル 2,3,4,5で起動され、0,1,6では停止されます。

onになっているサービスをoffにするには、chkconfigでサービス名の後にoffを 付けて実行します。

$ sudo /sbin/chkconfig canna off
$ /sbin/chkconfig --list canna
canna 0:off 1:off 2:off 3:off 4:off 5:off 6:off

逆に、offになっているサービスをonにするには、サービス名の後にonを付けて 実行します。

$ sudo /sbin/chkconfig canna on
$ /sbin/chkconfig --list canna
canna 0:off 1:off 2:on 3:on 4:on 5:on 6:off

標準でonになるランレベルは各サービスによって決まっています。もし、 標準の設定を変更したい場合にはオプション --levelを付けて指定します。例え ば、ランレベル2,4でcannaをoffにするには次のようにします。

$ sudo /sbin/chkconfig --level 24 canna off
$ /sbin/chkconfig --list canna
canna 0:off 1:off 2:off 3:on 4:off 5:on 6:off

ここで、chkconfigコマンドでoffになっているサービスをonにしただけでは、す ぐにはそのサービスが利用できないことに注意して下さい。chkconfigコマンド で設定したサービスはランレベルを変更したり、再起動した場合に起動されます。 すぐにサービスを利用したい場合は次のように入力する必要があります。この例 ではcannaサーバを起動します。

$ sudo /sbin/service canna start

サービスを停止する場合は stopとします。

$ sudo /sbin/service canna stop

また、サービスを再起動する場合は restartとします。

各サービスを制御するスクリプトについて

各サービスの起動や停止などを担うスクリプトは、 実際には/etc/init.d以下にインストールされています。 serviceは、これらを実行するラッパーに過ぎません。

serviceを使わずにこれらのスクリプトを直接実行することも可能です。 例えば、Cannaサーバを停止するには、次の様にします。

$ sudo /etc/init.d/canna stop

IV.26.4. ランレベル (Run Level)とは

ランレベルとはシステムの状態のことです。Linuxでは以下のランレベル0から6まで定義されており、ランレベルを変更することによってシステムの状態を変えることができます。各種サービスはランレベルに応じて起動されます。

  • ランレベル 0 : システムの停止
  • ランレベル 1 : シングルユーザモード
  • ランレベル 2 : マルチユーザモード (NFSマウントなし)
  • ランレベル 3 : マルチユーザモード (通常 : コンソールログイン)
  • ランレベル 4 : 未使用
  • ランレベル 5 : マルチユーザモード (通常 : ディスプレイマネージャ使用)
  • ランレベル 6 : システムの再起動

現在のランレベルを確認するには runlevelコマンドを用います。

$ /sbin/runlevel
N 5
左側に一つ前のランレベル、右側に現在のランレベルが表示されます。一度も変更していない場合は、一つ前のランレベルのところは N が表示されます。

ランレベルを変更するには telinitコマンドを用います。ランレベル 3に変更するには次のようにします。

$ sudo /sbin/telinit 3

telinit 0を実行するとシステムの停止(halt)を行えます。また、telinit 6を実行するとシステムの再起動(reboot)を行えます。

何か作業をしている場合は、ランレベルを切り替える前に、必要に応じて保存するなどしてアプリケーションを終了させてください。

たとえば ランレベル5 で GNOME上で何か作業をしている時に、ランレベル 3 に切り替えると、GNOME 上のアプリケーションなどは強制終了され、X Window System も終了します。

GNOME上での作業を終えてログアウトした後で、仮想コンソールに移ってroot権限でランレベルを切り替えるとよいでしょう。

なお、ランレベル3 からランレベル5 に切り替える場合では、telinit コマンドを実行した後、自動的に gdm のログイン画面に切り替わりますが、仮想コンソールでは telinit コマンドを実行したユーザがログインしたままになっているので、画面を再び仮想コンソールに切り替えてログアウトするなどしてください。

ユーザへの通知など

必要であれば、ランレベルを切り替える前にユーザに通知してください。

wコマンドで、現在ログインしているユーザを調べることができます。また、wallコマンドやwriteコマンドなどで、ユーザの端末にメッセージを送ることができます。

メールやwebで告知しておくほうが有効かもしれません。

IV.26.4.1. 標準のランレベルを設定する

標準のランレベルは、/etc/inittab というテキストファイルで設定されています。

/etc/inittab の9行〜19行 の部分に次のように記述されています。 説明のために左端に行番号を付けています。

9         # Default runlevel. The runlevels used by RHS are:
10        #   0 - halt (Do NOT set initdefault to this)
11        #   1 - Single user mode
12        #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
13        #   3 - Full multiuser mode
14        #   4 - unused
15        #   5 - X11
16        #   6 - reboot (Do NOT set initdefault to this)
17        # 
18        id:5:initdefault:
19        

9行〜16行が、ランレベルごとの説明で、18行目の 数字 5 が標準のランレベルです。

例 IV.26-1標準のランレベルを 5 から 3 に変更するには

起動しなくなるおそれがありますので、必要な部分以外は書き変えないでください。また、ランレベル 0 や 4 や 6 は 停止、未使用、再起動 なので、設定しないでください。

電源を入れた直後のGRUBブートローダでランレベルを指定することができます。参照 セクション B.1 - 起動時にカーネルオプションを指定、変更するには

編集するファイルをバックアップしておきます。

$ sudo cp -i /etc/inittab /etc/inittab.original
エディタjedでファイルを開きます。
$ jed /etc/inittab

ランレベルを 5 から 3 に変更します。

id:5:initdefault:
#id:5:initdefault:
id:3:initdefault:
のように書き換えます。

行頭に # をつけることでその行を無効にできます。無効にすることで、変更前はランレベルは 5 であったということを残しておきます。新しい設定は次の行に書きます。

IV.26.5. 利用できる主なデーモン

インストールCDに付属するデーモンパッケージとしては、Postfix、ProFTPd、OpenSSH、Apacheがあります。その他のサーバパッケージについては、VinePlusより取得してください。

NIS (YP) Server (サーバ:ypserv クライアント:yp-tools,ypbind)

NIS(Network Information Service)はLANの中でのユーザ管理やホスト名の管理に使うことができます。ypserv、ypbind、yp-toolsをインストールして下さい。/usr/share/doc/JF/NIS-HOWTO.txt.gz に設定の仕方が書かれています。サーバの設定ファイルは /etc/ypserv.conf にあり、クライアントの設定ファイルは/etc/yp.confにあります。NISの情報は /var/yp/以下に置かれます。

サービスの起動と停止は

	$ sudo /sbin/service ypserv {start|stop}
	$ sudo /sbin/service ypbind {start|stop}
	$ sudo /sbin/service yppasswdd {start|stop}
            
です。

DNS Server (ネームサーバ) (サーバ:bind クライアント:bind-utils)

LAN内ならばIPアドレスとホスト名の対応付けを行うには/etc/hostsやNISを利用できますが、Webサーバやメールサーバなどを運用するにはインターネットからアクセスしてもらう必要があります。そのため、DNSサーバを設定し、LAN外からのホストが名前解決できるようにします。bind, bind-utilsをインストールして下さい。/usr/share/doc/JF/DNS-HOWTO.txt.gz に設定の仕方が書かれています。

サービスの起動と停止は

	$ sudo /sbin/service named {start|stop}
            
です。

Web/WWW/http Server (サーバ:apache2 マニュアル:apache2-manual)

World Wide Web(WWW)のためのサーバです。これには Apache2 を利用することができます。設定ファイルは /etc/apache2/conf/httpd.confに置かれています。 WWWのトップページは Apache とは異なり Apache2 では /var/www/html/に置かれます。

サービスの起動と停止は

$ sudo /sbin/service apache2 {start|stop}
です。

Apache2 ではなく、Apache のパッケージも Vine Plus にあり、利用することができます。(サーバ:apache マニュアル:apache-manual) 設定ファイルは /etc/httpd/conf/httpd.confに置かれています。WWWのトップページは /home/httpd/html/に置かれます。

サービスの起動と停止は

	$ sudo /sbin/service httpd {start|stop}
            
です。

ServerNameにホスト名を設定すればとりあえず起動しますが、Japan Apache Users GroupによるApacheマニュアルの和訳などを参照し、正しく設定して下さい。マニュアルは HTML形式で書かれているのでブラウザを使って参照して下さい。

ApacheのWWWページは http://www.apache.org/ ですので御覧下さい。

FTP Server (proftpd)

FTP(File Transfer Protocol) サーバは、インターネットを挟んでファイルを転送するためのサーバです。Vine Linux のパッケージも FTP で入手できますね。設定ファイルは /etc/proftpd.conf です。設定の方法や設定例が /usr/share/doc/proftpd-*/ にありますので、参考にしてください。ftp のトップディレクトリは /home/ftp/ になります。

サービスの起動と停止は

$ sudo /sbin/service proftpd {start|stop}
です。

Vine Linux の設定では、proftpd はスタンドアローンで常時起動するようになっています。もし、inetd デーモン経由で起動させたい場合は、/etc/proftpd.conf の ServerType を

#ServerType	standalone
ServerType	inetd
に変更します。また、/etc/xinetd.d/ftp を作成し、以下の例のような内容にします。

# default: off 
# description: Proftpd
# securlevel: 30
service ftp
{       
	disable = no    
	socket_type     = stream
	protocol        = tcp
	wait            = no
	user            = root
	server          = /usr/sbin/in.proftpd
}

後は、chkconfig コマンドで proftpd を起動しないようにし、xinetd デーモンに設定を再読み込みさせます。

$ sudo /sbin/chkconfig proftpd stop
$ sudo /sbin/service inet reload

/etc/ftpusersにユーザ名を書くと、そのユーザはftpサーバにアクセスできなくなります。

Mail Server (メールサーバ) (postfix)

メールを常時送受信するためにはメールサーバを起動しておく必要があります。プロバイダ等にメールが届く場合は必要ありません。メールサーバにはpostfixを利用することができます。設定ファイルは/etc/postfix/ 以下にあります。

/usr/share/doc/postfix-*/以下に設定方法や設定例に関するドキュメントがあります。sendmailから移行する場合はCOMPATIBILITYを参照しておくと良いでしょう。また、日本語マニュアル(man postfix, man master)もありますので参照して下さい。postfixのWWWページはhttp://www.postfix.org/ ですので御覧下さい。

サービスの起動と停止は

	$ sudo /sbin/service postfix {start|stop}
            
です。

DHCP Server (サーバ:dhcp クライアント:dhcpcd)

DHCP(Dynamic Host Configuration Protocol)サーバは、IPアドレスやネットマスクなどの情報をクライアントに提供するためにサーバです。クライアントのホストに固定のIPアドレスが必要ない場合などに使われます。DHCPに関する事項は DHCP mini-HOWTOを参照して下さい。設定ファイルは/usr/share/doc/dhcp-*/dhcpd.conf.sampleを、/etc/dhcpd.confにコピーしてお使いください。dhcpd.confの書き方は man dhcpd.confを見て下さい。

サービスの起動と停止は

	$ sudo /sbin/service dhcpd {start|stop}
            
です。

Samba SMB Server (サーバ:samba クライアント:samba-client ドキュメント:samba-doc)

SMB(Session Message Block)はWindowsなどでディスクやプリンタを共有するためにプロトコルです。これを用いることによって、Vine LinuxでもWindowsなどとディスクやプリンタを共有することができます。SMBに関する事項は/usr/share/doc/JF/archive/SMB-HOWTO.txt.gz を参照して下さい。設定ファイルは/etc/samba/smb.conf/etc/samba/smbusersなどです。トップディレクトリは /home/sambaになります。Web ベースの Samba 管理ツール samba-swat のパッケージも用意されています。

サービスの起動と停止は

	$ sudo /sbin/service smb {start|stop}
            
です。

NFS Server (nfs-utils)

LAN内でディレクトリ(ファイルシステム)を共有することができます。各ホストは共有したディレクトリをローカルなディレクトリと同様に使用することができます。例えばサーバとなるホストの /usr/local を他のホストが共有している場合、ツールなどのインストールはサーバホストのみで良く管理の手間が省けます。設定については /usr/share/doc/JF/NFS-HOWTO.txt.gz を参照して下さい。

NFSではずっとマウントされていますが、automount(オートマウント)を利用すると必要なときにだけマウントされます。CD-ROMを入れてから /misc/cdにアクセスするとCD-ROMを見ることができるのは、このautomountが動いているからです。設定の仕方は /usr/share/doc/JF/Automount.txt.gz を参照して下さい。

NTP Server (ntp)

NFSなどでLAN内のホストを相互に接続した場合、各ホストの時刻を揃える必要があります。NTP(Network Time Protocol)は内蔵の時計を同期させるのに使います。設定ファイルは /etc/ntp.conf に置かれています。NTPに関しては /usr/share/doc/JF/Clock.txt.gz を参照して下さい。

サービスの起動と停止は

	$ sudo /sbin/service ntpd {start|stop}
            
です。