![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
主にスタンドアローン方式で運用されるサービス
httpd smb sendmail named sshd xinetd webmin 等
スーパーデーモンの起動/停止/再起動を行うスクリプトは、/etc/rc.d/init.d/xinetd
start とシェルから入力します。(下図参照)
停止するには、/etc/rc.d/init.d/xinet stop とシェルから入力します。(下図参照)
ただしこれは、スパーデーモンを有効、無効にするだけのデーモンです。実際に起動するサービスは、/etc/xinetd.dにある個々の設定ファイルに対して起動をかけたりかけなかったりします。(下図参照)
それでは、telnetの設定ファイルを見てみましょう。
| # default: off # description: Telnet server # securlevel: 30 service telnet { disable = yes socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/in.telnetd server_args = -h } |
コメント コメント コメント この行は、サービス名称を指定します。 xinetd経由で起動するかしないかyesは起動しない、noは起動する。 ソケットの種類を指定。 プロトコルの指定。 複数の接続を同時に受けるかonは受ける。 サービスを立ち上げるユーザー サーバープログラムの絶対パス 起動オプション |
設定例で分かるように、disable=noになっているサービスについては、xinetdの起動がかかった時点でサービスが開始される。ただし、そのサービスが起動しているかどうかを確かめることは出来ないので、実際にアクセスしてみるしか手がない。
主にスーパーデーモン方式で運用されるサービス
telnet swat wu-ftpd ipop3 imap等
Linuxでは、実行中のプログラムのことをプロセスと言います。このプロセスを確認する方法は、「ps」 というコマンドを使います。
すべてのプロセスを表示させるには、 ps ax と入力します。(下図参照)
簡単に説明すると、PIDがプロセスIDです。PID582を見るとCOMMANDのところがproftpdとなっていますね。それが起動しているサービス名称で582がプロセスIDになります。また、PID10249をみてください、COMMANDのところがhttpdが並んでいますね、これはapacheが起動していて、子プロセスが5つ動いていることを示しています。
killコマンドを使用する。このコマンドは、指定したプロセスのシグナルと言うメッセージを送る。プロセスIDを指定し実行すればTERMと言うシグナルが送られる。TERMとは、終了を意味するシグナルである。
プロセスIDは、上記のps axコマンドで調べることが出来るまた、pidファイルを調べても確認できる。たとえばsshdのpidファイルは、/var/run/sshd.pid
ファイルがあるのでテキストエディターで開いてみると、単純に数字が入っている、それがプロセスIDである。
httpdを停止する場合
親IDを停止させる。
kill 10249と実行させると停止する。
ps axコマンドで確認する。
尚、プロセスIDは、起動する度代わるので再度立ち上げた場合は、もう一度プロセスIDを確認して実行すること。
killコマンドのオプションについて(kill オプション pid)
-9 強制終了
-1 ハングアップさせる
-15 (デフォルテ)
-all すべて終了させる
以下詳しいく知りたい場合は、技術書を参考にしてください。
まず、Kメニューからデーモン設定ツールを選択し起動してください。上部の方に「起動時のサービス設定」と言うタグがあると思いますそれを選択してみてください。サービス名にレ点が入ってい入るのがあると思います。それがサービス起動時に同時に起動するサービスなのです。起動させたくないサービスがあればこのレ点を消し、起動させたいサービスがあればレ点を付ければ完了です。最後にセーブして終了です。サーバーをリブートして確認してみて下さい。設定したサービスがRunning又はstopになっていれば完成です。
ランレベルとは、Linuxの動作モードで、0から6までの番号があります。通常利用するのが3か5です。(下記参照)
| ランレベル | 内容 |
| 0 | システムを停止するモード |
| 3 | マルチユーザーモード、ログイン画面がTEXTベース |
| 5 | マルチユーザーモード、ログイン画面がグラフィカル |
| 6 | システムの再起動を行うモード |
ランレベルの確認方法
/etc/inittab
| id:3:initdefault: # System initialization. si::sysinit:/etc/rc.sysinit l0:0:wait:/etc/rc 0 l1:1:wait:/etc/rc 1 l2:2:wait:/etc/rc 2 l3:3:wait:/etc/rc 3 l4:4:wait:/etc/rc 4 l5:5:wait:/etc/rc 5 l6:6:wait:/etc/rc 6 |
←システム起動時のランレベル id:3がランレベル ←システム初期化スクリプトの実行指示 ←ランレベルに応じた処理が指定 つまり、ランレベル3の場合、rcは/etc/rc3.dのディレクトリー内のサービス制御スクリプトを実行する。と言う意味である。 |
とりあえずrc3.dの中身を見てみましょう
| [root@sv1 rc3.d]# ls K15proftpd@ S30syslog@ S55sshd@ S90crond@ S10network@ S50xinetd@ S99local@ [root@sv1 rc3.d]# |
先頭がSで始まるスクリプトは起動時に開始するサービスで、先頭がKで始まるサービスは、起動時に停止するサービスです。
そのあとの数字は、実行していく順番で、若い番号順に開始していきます。これらのファイルは、先に紹介したサービス制御スクリプトのシンボリックリンクになっています。このファイルは、デーモン設定ツールで設定した内容がここに反映されるのです。
この辺のロジックは少し難しいかもしれません。自分で制御スクリプトの中を見て研究してみてください。また参考までに、chkconfigのコマンドが多いに関わっていますので是非調べてみてください。コマンドで上記の設定変更や表示が出来ます。豆知識に反映