いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.029 / 読者数:487名

こんばんは,うすだです.

突然ですが,Vine Linux 3.2 がリリースされました!

Vine Linux Home Page
http://www.vinelinux.org/

メインで使っているマシンが Vine Linux 3.1 なので, アップグレードしてみようと思いましたが,HDD の空き容量が少ないので, おうちの PC をアップグレードしてみました.

まあ,なんといいますか,アップグレードは, あっけないくらい簡単にできてしまいました. やることは,たった,これだけです.
(そういえば,3.0 から 3.1 へのアップグレードの時も,同様でした.)

  (/etc/apt/sources.list を編集(3.1 を 3.2 にするだけ))
  # apt-get update
  # apt-get dist-upgrade

再起動してインストーラを実行するとか,シングルユーザモードに移行してとか, 一切必要ないというシンプルさ.すばらしいです.

自分で作ったアプリケーションなども, これくらい簡単にアップグレードなどできるようにしたいものだ,と思いました.

今週のお題 - サービスの制御を覗きみる

先週は,ランレベルの概要について,ご説明しました.

Vol.028 ランレベルを理解する
http://www.usupi.org/sysad/028.html

今週は,その延長で,サービスの起動や停止等を行うスクリプトについて, 簡単にご説明してみようと思います.

先週,すこーしだけ触れましたが,各ランレベルで実行される処理は, /etc/rc.d/rcランレベル.d 以下(あるいは /etc/rcランレベル.d 以下) にあるスクリプトで決まります.

別のランレベルへ移行する際には,以下の処理を行います.

  1. K で始まるスクリプトそれぞれに対して,以下を実行する.
    /etc/rc.d/rcランレベル.d/Kなんとか stop
  2. S で始まるスクリプトそれぞれに対して,以下を実行する.
    /etc/rc.d/rcランレベル.d/Sなんとか start

K とか S とかややこしいな,と思われるかもしれませんが,実は, これらのスクリプトは,/etc/rc.d/init.d 以下(あるいは /etc/init.d 以下) にあるファイルへのシンボリックリンクです.
例えば,anacron の起動・停止を行うスクリプトは,各ランレベルに存在しますが, 実体はみな /etc/rc.d/init.d/anacron です.

  % cd /etc/rc.d
  % ls -l rc?.d/*anacron
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc0.d/K05anacron \
  -> ../init.d/anacron*
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc1.d/K05anacron \
  -> ../init.d/anacron*
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc2.d/S95anacron \
  -> ../init.d/anacron*
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc3.d/S95anacron \
  -> ../init.d/anacron*
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc4.d/S95anacron \
  -> ../init.d/anacron*
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc5.d/S95anacron \
  -> ../init.d/anacron*
  lrwxrwxrwx   1 root   root     17 Jan 12  2005 rc6.d/K05anacron \
  -> ../init.d/anacron*

つまり,そのサービスが起動している必要のあるランレベルに対しては, S で始まるシンボリックリンクを作成し, そうでない場合は K で始まるシンボリックリンクを作成しておけばよい, ということになります.

上記の anacron の場合,ランレベル 2,3,4,5 では動作させ,0,1,6 では停止させる, ということがわかります.

次に,スクリプトの中を覗いてみましょう.
anacron は,ものすごく簡略化して書くと,以下のようになっています.

  % cat /etc/rc.d/init.d/anacron
  #!/bin/sh
  (中略)
  case "$1" in
      start)
          (anacron を起動する処理)
          ;;
      stop)
          (anacron を停止する処理)
          ;;
  (中略)
      *)
          echo $"Usage: $0 {start|stop|restart|condrestart|status}"
          exit 1
  esac
  exit (状態)

引数が start なら anacron を起動し,stop なら停止します.
こういう作りになっているので,シンボリックリンクで共用できるわけですね.

以上,サービスの起動や停止のあたりを,駆け足でご説明しました.
せっかくですので,init.d/anacron などの中身を,覗いてみてください.
daemon や killproc, status などの見なれないやつらがちらほら顔を出しますが, これらは,init.d/functions で定義されていますよ.
(…が,名称から,何をやっているかは,雰囲気でわかりますね.)

宿題の答え

先週の宿題は,

  シングルユーザモードとマルチユーザモードの違いはなんでしょうか?

でした.

シングルユーザモードは,目の前で使っている自分以外には, 誰も使えないというモードです.init と,自分が今使っているシェル以外は, ユーザプロセスがほとんど何も動作していません.潔いです.
かたや,マルチユーザモードは,ネットワークやシリアル・ポート経由で, 他の誰かがログインして使用できるモードです. いろんなユーザプロセスが動作しています.

シングルユーザモードでは,sshd や inetd 等はおろか, ネットワーク・インタフェースの設定すら行われません. X Window System も動いていませんので, 仮想端末でシェルが複数動作…ということもありません.

ですので,ファイルシステムの修復や,共有ライブラリの差し替えなど, 他の人が使っているとよろしくないようなことを行うことができます.

もし,個人で試せる環境があれば,telinit 1 を実行してみてください. あるいは,シングルユーザモードで起動して,確かめてみましょう.
後者は,ブートローダによって方法が少し異なりますが, オプションに -s をつけて起動すれば,シングルユーザモードになります.

今週の宿題

今週の宿題は,こちらです.

  ランレベルを変更する際に,K や S で始まるスクリプトを起動するのは
  誰でしょうか?

です.

init だ! という答えは正しいのですが,もう少し詳しく見ると, init が何らかのスクリプトを起動することによって,そうなります.
そのスクリプトを,ちょっと探してみましょう.

あとがき

愛知万博が,今日(日付で言うと昨日)閉幕しました.

当初は,間に合うのかとか,つまんないんじゃないのかとか, はらはらとさせられましたが,あけてみれば,2200万人を越える来場者数. 大成功で幕を閉じました.

私は,家族とともに,2回ほど行ってきました.
どちらも9月でしたので,噂の企業館にはひとつも入れず, もっぱら外国館を見てまわりました.
(あ,いちおう,長久手日本館という人気のあるところも,観ました.)

実際に行ってみて思ったのは,20万人を越える来場者でも, 周囲が騒ぐほど大変ではないということと, 待ち時間のほとんどないブースもそれなりに楽しめる,ということでした.

リピータが 1/4 以上だった,という話をどこかで聞きましたが, ものすごーくうなずけます.私も,お金と時間が許せば,まだ行きたかったです.

9月25日で終わりだなんて,なんだかもったいないですね.
でも,みんなに惜しまれるくらいで終わりにするのが, ちょうどいいのかもしれないですね.
引き際は大事なんだなあ,と思いました.
(万博は,開催期間が最初から決まってるよ,という突っ込みは, 謹んでお受け致しますといいますか,気にしないようにしてください.)

今週も,ここまで読んでいただき,ありがとうございました.
それでは,また来週,お会いしましょう!

「いますぐ実践! Linux システム管理」の解除は,以下からどうぞ.
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは,こちらにほぼ全部そろっています.
http://www.usupi.org/sysad/backno.html

「栗日記」−これから旬に向けて,盛り上がりますよ! (たぶん)
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本