目次


Linuxを即席で管理する

/procファイルシステムを使ってシステムを管理する

Comments

商業用に使用される重要なシステムを管理したことのある人なら、稼働時間の価値というものをご存じのことでしょう。あるいは逆に、不稼働時間のためにユーザーが悩みの種を寄せてくることもおわかりのことと思います。会社がUNIXサーバーを稼働したいと考える主な理由に、その信頼性と安定性があります。注意深い管理を行えば、通常そうしたサーバーは長い間リスタートする必要がありません。また、いろいろな問題を改善する場合でも、サーバーを稼働させながら即席で行える管理作業が (カーネル・レベルにすら) 数多くあります。ハードウェアをアップグレードしたり誰かが電源コードに足をひっかけたりしたときにはシステムをリスタートせざるをえない場合もあるでしょうが、サービスを中断させずに行える管理作業も数多くあるということを知っておくとよいでしょう。

本稿では、リブートせずに いろいろな管理作業やシステム変更を行うための手がかりや秘訣を紹介します。Linuxには、システムを稼働させながら基礎部分のオペレーティング・システムの値や設定内容を変更するための方法がいろいろと用意されています。変更対象の値や設定内容は基本的に2つの形式に分かれます。すべてのLinuxシステムに共通でLinuxカーネルとして提供されているもの (Linuxカーネルに関するさらに詳しい情報やカーネルのソースは、Linux Kernel Archivesで入手することができます。リンクは参考文献に示してあります) およびディストリビューションごとに固有でベンダーによって提供されているものの2つです。本稿では、この両方のタイプについて説明します。

実行中のカーネル・パラメーターを変更する

Linuxでは、システムの実行中にカーネルやシステムをリブートすることなく管理者が非常に整然とした方法でカーネルを変更できるようになっています。それには/proc という仮想ファイルシステムが使用されます。これまで私が見てきた中で/proc を最も簡潔かつやさしく解説している文献にLinux Gazetteのものがあります(リンクについては参考文献を参照してください)。/proc ファイルシステムのごく基本的な機能は、実行中のカーネルの状況を確認することです。この機能を利用することで、パフォーマンスの監視、システム情報の調査、システム構成の確認や変更といったことが可能になります。このファイルシステムが仮想ファイルシステム と呼ばれるのは、それが本当はファイルシステムでも何でもないからです。それは、カーネルが作成するマップで、通常のファイルシステム構造に結合され、ユーザーがファイルシステム構造にアクセスできるようにします。

システムの稼働中に実行中のカーネル・パラメーターを何らかの方法で変更できるということは、システム管理者がカーネルの設定内容を変更するための大きな能力と柔軟性を掌中にしたことを意味します。このような実装は、Linuxカーネルの開発者によって発想されたことですが、能力があまりにも大きいと、問題を起こすことにならないのでしょうか。ときには、そういうこともあります。/proc ファイルシステムに何か変更を加える場合には、何を変更しようとしていて、それによってシステムにどんな結果をもたらすのかを必ず理解しておく必要があります。カーネル・パラメーターの変更は非常に有効な手法なのですが、処置を間違うと非常に望ましくない結果をもたらしたりします。こうしたことを初めて行う場合や変更によってどんな結果になるのかがはっきりしない場合には、仕事に関係のないマシンで試してください。

変更の進め方

まず、カーネルに変更を加えない 方法を考えてみます。2つの妥当な理由から、すぐに/proc ファイルシステムに入っていってテキスト・エディターでファイルをオープンし、いろいろな変更を加え、そのファイルを上書きするという方法はとらないほうがよいでしょう。その理由とは次の2つです。

  • データの完全性: ここに含まれているファイルは、すべて実行中のシステムの状態を表しているものであり、カーネルがいつこれらのファイルを変更するかわかりません。したがって、皆さんがエディターをオープンしデータに変更を加えている最中に、その裏側でシステムがデータを変更したとすると、皆さんが上書きするデータは、カーネルの予期しているものとはならないでしょう。
  • 仮想ファイル: これらのファイルは、どれも実際には存在していません。それでは、保存されたデータの同期化などはどのように行われるというのでしょうか。

したがって、これらのファイルに変更を加える場合の答は、エディターを使わないということです。/proc ファイルシステムに何か変更を加えるときには、echo コマンドを使ってコマンド・ラインからの出力を/proc 下の指定のファイルにリダイレクトしたほうがよいでしょう。たとえば、以下のようにします。

echo "Your-New-Kernel-Value" > /proc/your/file

同様に/proc の情報を確認したい場合には、そのために設計されたコマンドを使うかコマンド・ラインのcat コマンドを使用したほうがよいでしょう。

何を変更するか

/proc を上手に活用するのにカーネル・ハッカーである必要はありません。このファイルシステムの構造の基本的なことを理解していれば、それで大いに役に立ちます。ユーザーからちょっとした機能を要求され、変更するにはどこを参照すればよいのかを学んでおいてよかったと思う日がくるまでは/proc の中身など何も知らなくてもよいと思うかもしれません。この点で、/proc ファイルシステムの構造とファイル許可は、システム管理者の手助けとなります。

/proc 内の各ファイルには、独自のファイル許可の集合が割り当てられており、それぞれが特定のユーザーIDによって所有されます。この割り当てと所有は、しかるべき機能が管理者やユーザーに提供されることになるように非常に慎重に行われます。以下の箇条書きは、個々のファイルに対して許可がどんなことを行うのかをまとめたものです。

  • 読み出し専用 (Read-only): そのファイルは、どのユーザーも変更できない。システム情報の提供に使用される
  • ルート書き込み (Root-write):/proc 中のファイルが書き込み可能になっている場合、通常ルート・ユーザーだけが書き込みを行うことができる
  • ルート読み出し (Root-read): 通常のシステム・ユーザーは見ることができず、ルートだけが見ることのできるファイルもあります
  • その他 (Other): 上の一般的な3つの許可以外にも、いろいろな理由から、それらを組み合わせたものが使われる場合があります

/proc について非常に大まかな捉え方をするなら、/proc/sys ディレクトリー以外は、ほとんどが読み出し専用になっていることわかります。/proc/sys は (単なる情報ではなく) ほとんどのカーネル・パラメーターを収容しているディレクトリーで、システム実行中の変更を前提に設けられているものです。したがって、本稿での解説はこのディレクトリーが中心になります。

/proc で何を変更するかに関して最後に理解しておくべきことは、これらのファイルに何を書き込むかということです。/proc 中のいろいろなファイルを眺めると、人が判読できるファイルもあれば、データ・ファイルもあることに気付くことと思います。データ・ファイルも、toplspcifree といった専用のユーティリティーを使えば判読が可能です。また、人が判読できるファイルには2種類のフォーマットがあることがわかります。バイナリー・スイッチを示すものと、それよりもっと多くの情報を含んでいるものの2種類です。バイナリー・スイッチ・ファイルは、特定のカーネル機能について0 (オフ) か1 (オン) かを示しているだけです。

変更作業の実際

/proc に含まれている各ファイルの詳細な情報や使い方を説明するのは、この記事の範囲外です。本稿で取り上げていない/proc のファイルの詳細については、最も優れた資料の1つとしてLinuxカーネルのソースそのものがあります。その中には非常に役に立つ説明も含まれています。/proc に含まれている以下のファイルは、システム管理者が重宝することの多いファイルです。これは、徹底的な処理に利用されるというのではなく、簡単にアクセスして参照でき日常的に使用できるという意味です。

/proc/scsi

/proc/scsi/scsi

システム管理者として最も知っておく価値の高いことの1つに、ホット・スワップ・ドライブを利用している場合にシステムをリブートせずにディスク・スペースを追加する方法があります。/proc を使わなくてもドライブを挿入することはできますが、その場合、新しいディスクをシステムに認識させるためにリブートする必要があります。しかし /procを使えば、以下のコマンドで新しいドライブをシステムに認識させることができます。

echo "scsi add-single-device w x y z" > /proc/scsi/scsi

このコマンドを正しく機能させるためには、パラメーターw、x、y、zに以下のような適切な値を指定する必要があります。

  • wはホスト・アダプターIDで、最初のアダプターが0です
  • xはホスト・アダプター上のSCSIチャネルで、最初のチャネルが0です
  • yはデバイスのSCSI IDです
  • zはLUN番号で、最初のLUNが0です

ディスクがシステムに追加されると、以前にフォーマットしておいたファイルシステムをマウントしたり、ファイルシステムのフォーマットを開始したりすることができます。ディスクがどのデバイスになるのかがわからない場合や、たとえば既に存在するパーティションを確認したいというような場合には、fdisk -l などのコマンドを使ってそうした情報を表示させることができます。

逆にリブートを行わずにシステムからデバイスを除去したいときには、以下のようなコマンドを使用します。

echo "scsi remove-single-device w x y z" > /proc/scsi/scsi

このコマンドでホット・スワップ用のSCSIディスクをシステムから除去するときには、必ず先にこのディスクからすべてのファイルシステムをアンマウントするようにしてください。

/proc/sys/fs/

/proc/sys/fs/file-max

これは、割り当て可能なファイル・ハンドルの最大個数を指定します。オープンされているファイルの個数が上限に達したため、それ以上ファイルをオープンできないというエラー・メッセージが出てくるようになったら、この値を増やす必要があるかもしれません。ファイルの個数は任意の値にでき、このファイルに新しい数値を書き込むことで変更することができます。

デフォルトの設定値: 4096

/proc/sys/fs/file-nr
このファイルはfile-maxと関連しており、以下の3つの値を保持しています。

  • 割り当て済みのファイル・ハンドル数
  • 使用されているファイル・ハンドル数
  • ファイル・ハンドルの最大個数

このファイルは読み出し専用であり、情報提供用としてのみ使用されます。

/proc/sys/fs/inode-*
名前がinodeで始まるファイルは、すべて、名前がfileで始まる上記のファイルと同じ働きをします。ただしその動作はファイル・ハンドルではなくiノードとの関係で実行されます。

/proc/sys/fs/overflowuid および/proc/sys/fs/overflowgid
これは、16ビットのユーザーIDおよびグループIDをサポートするファイルシステムが使われている場合のUser ID (UID) およびGroup ID (GID) を保持しています。これらの値は変更が可能ですが、変更する必要があったとしても、グループやパスワードのファイルのエントリーを変更したほうが簡単だと感じるのではないでしょうか。

デフォルトの設定値: 65534

/proc/sys/fs/super-max
これは、スーパー・ブロック・ハンドラーの最大個数を指定します。マウントされるファイルシステムは、すべてスーパー・ブロックを使用する必要がありますので、ファイルシステムをたくさんマウントするとスーパー・ブロックを使い切ってしまう可能性があります。

デフォルトの設定値: 256

/proc/sys/fs/super-nr
これは、現在割り当てられているスーパー・ブロックの数を示します。このファイルは読み出し専用であり、情報提供用としてのみ使用されます。

/proc/sys/kernel

/proc/sys/kernel/acct

このファイルには、ログを含めたファイルシステムのフリー・スペースの量 (パーセンテージ) をもとに、プロセス・アカウンティングを行うタイミングを制御する以下の3つの変更可能な値が保持されます。

  1. フリー・スペースがこのパーセンテージの値よりも少なくなるとプロセス・アカウンティングが停止される
  2. フリー・スペースがこのパーセンテージの値よりも多くなるとプロセス・アカウンティングが開始される
  3. 上の2つの値をチェックする頻度 (秒単位での指定)

このファイルの値を変更するには、数字をスペースで区切ったリストをechoする必要があります。

デフォルトの設定値: 2 4 30

これらの値を指定すると、ログを含めたファイルシステムのフリー・スペースが2パーセント未満になるとアカウンティングが停止され、フリー・スペースが4パーセント以上になるとアカウンティングが開始されます。チェックは30秒ごとに行われます。

/proc/sys/kernel/ctrl-alt-del
このファイルには、ctrl+alt+deleteのキーの組み合わせを受けたときのシステムの反応を制御するためのバイナリー値が保持されます。2通りの値の意味は以下のとおりです。

  1. 値0は、ctrl+alt+deleteがトラップされinitプログラムに送られることを意味します。この値にすると、システムはシャットダウン・コマンドがタイプされたかのように礼儀正しくシャットダウンを行い、リスタートを行うことになります。
  2. 値1は、ctrl+alt+deleteがトラップされず、電源がオフにされたときのように、きれいなシャットダウンが行われないことを意味します。

デフォルトの設定値: 0

/proc/sys/kernel/domainname
これによって、ネットワークのドメイン名を設定することができます。デフォルト値はなく、値が設定済みである場合もあれば、設定済みでない場合もあります。

/proc/sys/kernel/hostname
これによって、ネットワークのホスト名を設定することができます。デフォルト値はなく、値が設定済みである場合もあれば、設定済みでない場合もあります。

/proc/sys/kernel/msgmax
これは、プロセス同士がやりとりできるメッセージの最大サイズを指定します。プロセス間のメッセージは、カーネル・メモリーに入れてやりとりされ、ディスクにはスワップ・アウトされませんので、この値を大きくしてやるとオペレーティング・システムが使用するメモリーの量が増えることになります。

デフォルトの設定値: 8192

/proc/sys/kernel/msgmnb
これは、1個のメッセージ・キューの最大バイト数を指定します。

デフォルトの設定値: 16384

/proc/sys/kernel/msgmni
これは、メッセージ・キューIDの最大個数を指定します。

デフォルトの設定値: 16

/proc/sys/kernel/panic
これは、「カーネル・パニック」に陥ったときにカーネルがリブートするまでに待機する時間を (秒単位で) 表します。0秒にすると、カーネル・パニック時にリブートを行わないことになります。

デフォルトの設定値: 0

/proc/sys/kernel/printk
これは、ロギング・メッセージの送出先をその重要性にしたがって定義する4つの数値を保持します。ログの各種レベルの詳細については、syslog(2) のマニュアル・ページを参照してください。このファイルの4つの値は以下のとおりです。

  1. コンソール・ログ・レベル (Console Log Level): この値よりも高い優先順位のメッセージはコンソールに表示されます。
  2. デフォルト・メッセージ・ログ・レベル (Default Message Log Level): 優先順位の指定されていないメッセージは、この優先順位にしたがって表示されます。
  3. 最低コンソール・ログ・レベル (Minimum Console Log Level): コンソール・ログ・レベルに設定できる最低の (優先順位の最も高い) 値
  4. デフォルト・コンソール・ログ・レベル (Default Console Log Level): コンソール・ログ・レベルのデフォルト値

デフォルトの設定値: 6 4 1 7

/proc/sys/kernel/shmall
これは、いつでもシステムで使用できる共有メモリーの総量 (バイト単位) です。

デフォルトの設定値: 2097152

/proc/sys/kernel/shmax
これは、カーネルが許す共有メモリー・セグメントの最大サイズ (バイト単位) を指定します。

デフォルトの設定値: 33554432

/proc/sys/kernel/shmmni
これは、システム全体の共有メモリー・セグメントの最大個数を表します。

デフォルトの設定値: 4096

/proc/sys/kernel/sysrq
これが0以外の値をとる場合、システム・リクエスト・キー (System Request Key) が有効にされます。

デフォルトの設定値: 0

/proc/sys/kernel/threads-max
これは、カーネルで使用可能なスレッドの最大個数を表します。

デフォルトの設定値: 2048

/proc/sys/net

/proc/sys/net/core/message_burst

これは、新しい警告メッセージを書き込むのに要する (1/10秒単位での) 時間を表します。この期間中に他の警告メッセージが受信された場合、無視されます。これは、誰かがシステムをメッセージであふれさせようとするサービス妨害攻撃 (Denial of Service attacks) を防止するためのものです。

デフォルトの設定値: 50 (5秒)

/proc/sys/net/core/message_cost
これは、どの警告メッセージにも結合されるコスト値を保持します。大きな値になるほど、警告メッセージは無視される可能性が大きくなります。

デフォルトの設定値: 5

/proc/sys/net/core/netdev_max_backlog
これは、カーネルの処理能力よりも速い頻度でインターフェースがパケットを受信する場合の、キューにつなぐことのできるパケットの最大個数を表します。

デフォルトの設定値: 300

/proc/sys/net/core/optmem_max
これは、ソケットごとの最大バッファー・サイズを指定します。

/proc/sys/net/core/rmem_default
これは、受信ソケット・バッファーのデフォルト・サイズ (バイト単位) を表します。

/proc/sys/net/core/rmem_max
これは、受信ソケット・バッファーの最大サイズ (バイト単位) を表します。

/proc/sys/net/core/wmem_default
これは、送信ソケット・バッファーのデフォルト・サイズ (バイト単位) を表します。

/proc/sys/net/core/wmem_max
これは、送信ソケット・バッファーの最大サイズ (バイト単位) を表します。

/proc/sys/net/ipv4
IPv4とIPv6のパラメーターについては、すべてカーネル・ソースの文書で詳細に説明されています。/usr/src/linux/Documentation/networking/ip-sysctl.txt というファイルを参照してください。

/proc/sys/net/ipv6
IPv4と同じ。

/proc/sys/vm

/proc/sys/vm/buffermem

これは、バッファー・メモリーとして使用されるシステム全体のメモリー量を (パーセントで) 制御します。ファイルには以下の3つの値が保持されます。値は設定が可能で、スペースで区切ったリストをファイルに書き込むことで設定します。

  1. バッファーに使用すべきメモリーの最低のパーセント
  2. システム・メモリーの残量が少なくなりシステム・メモリーの切り詰めを行う場合にシステムが維持しようとするバッファー・メモリーの量
  3. バッファーに使用すべきメモリーの最高のパーセント

デフォルトの設定値: 2 10 60

/proc/sys/vm/freepages
これは、いろいろなレベルのフリー・メモリーに対するシステムの反応を制御します。ファイルには以下の3つの値が保持されます。値は設定が可能で、スペースで区切ったリストをファイルに書き込むことで設定します。

  1. システムのフリー・ページ数がこの下限値に達した場合、それ以降メモリーを割り当てることができるのはカーネルだけとなります。
  2. システムのフリー・ページ数がこの限界値を下回ると、カーネルは、それまで以上に積極的にスワッッピングを行うことで、メモリーを開放してシステム・パフォーマンスを維持するようになります。
  3. カーネルは、このシステム・メモリー量を開放し続けようとします。この値を下回ると、カーネルはスワッッピングを開始します。

デフォルトの設定値: 512 768 1024

/proc/sys/vm/kswapd
これは、カーネルによるメモリーのスワップ方法を制御します。ファイルには以下の3つの値が保持されます。値は設定が可能で、スペースで区切ったリストをファイルに書き込むことで設定します。

  1. カーネルが一度に開放できる最大ページ数。スワップ時のバンド幅を向上させるには、この値を大きくする必要があります。
  2. スワップごとにカーネルが行う1ページ単位の開放の最低回数。
  3. 1回のスワップでカーネルが書き込むことのできるページ数。この値は、システム・パフォーマンスに大きな影響を及ぼします。大きい値にするほど、たくさんのデータをスワップでき、ディスク・シークの時間が少なくて済むことになります。ただし、あまりにも大きな値にするとリクエスト・キューをあふれさせることになりシステム・パフォーマンスに逆効果となります。

デフォルトの設定値: 512 32 8

/proc/sys/vm/pagecache
これは、/proc/sys/vm/buffermem と同じ働きをしますが、メモリー・マッピングとファイルの汎用的なキャッシング用に使われます。

カーネルの設定を永続的なものにする

/proc/sys ディレクトリー下のカーネル・パラメーターは、便利なユーティリティーを使って変更することができます。このユーティリティーでは、(上述のechoやリダイレクションの手法と同様) 実行中のカーネルに変更を加えることもできますが、システム・ブート時に処理される構成ファイルも用意されます。こうすることで、実行中のカーネルに変更を加えるとともに、システム・リブート後もその変更を生かし続けられるように変更を構成ファイルに記録することができます。

そのユーティリティーの名前はsysctl で、マニュアル・ページのsysctl(8) に詳しい説明があります。sysctl が使う構成ファイルは/etc/sysctl.conf で、編集することもできます。このファイルについてはsysctl.conf(8) に説明があります。Sysctl/proc/sys 下のファイルを変更可能な個々の変数として扱います。したがって、たとえば、システムで許されるファイル・ハンドルの最大個数を表す/proc/sys 下のファイル/proc/sys/fs/file-max は、fs.file-max として表されます。

この例から、sysctl の表記の特徴がいくつかわかります。sysctl/proc/sys ディレクトリー下の変数しか変更できませんので、変数は必ずそのディレクトリー下のものであるとみなし、そのディレクトリーの部分は変数名には含まれません。次にわかることは、ディレクトリーの区切り子 (スラッシュ: /) がピリオド (ドット: .) に変わっていることです。.

/proc/sys 中のファイルとsysctl の変数との間の変換を行う場合の規則は簡単で、以下の2つにまとめることができます。

  • 先頭の/proc/sys を除去する。
  • ファイル名のスラッシュをドットと交換する。

この2つの規則で/proc/sys 内のファイルの名前とsysctl の変数名とを交換することができます。ファイルと変数の一般的な変換は以下のとおりです。

/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file

変更可能な変数は、すべてその現在の設定内容とともにsysctl -a コマンドで確認することができます。

また変数はsysctl を使って変更することもできます。sysctl は前述のechoによる手法とまったく同じ働きをします。それには以下のような記法をします。

sysctl -w dir.file="value"

再びfile-maxを例にとると、この値は以下の2つのいずれかの方法で16384に変更することができます。

sysctl -w fs.file-max="16384"

または

echo "16384" > /proc/sys/fs/file-max

sysctl は、変更内容を構成ファイルに記録しませんので注意してください。それは手作業で行う必要があります。リブート後も変更内容を生かしておきたい場合には、構成ファイルを保守する必要があります。

注意: すべてのディストリビューションがsysctl をサポートしているわけではありません。皆さんがお使いのシステムがsysctl をサポートしていない場合でも、先述のechoかリダイレクトの手法を使用し、スタートアップ・スクリプトにこれらのコマンドを加え、システム・ブートのたびにそれらのコマンドが実行されるようにすることが可能です。

システム設定用のコマンド

システムが実行している最中に、リブートすることなくカーネル以外の他のシステム・パラメーターを変更し、それらの設定内容を有効にすることも可能です。これらのパラメーターは、大きく分けて/etc/init.d ディレクトリーに登録されるサービス、デーモン、サーバーに分類することができます。このディレクトリーにはさまざまな種類のスクリプトが登録され、その種類は増える一方ですので、すべての種類の構成をここで紹介することはできませんが、以下では、Linuxのいろいろなディストリビューションでの/etc/init.d のスクリプトの扱い方の例をいくつか紹介しておきます。リブートせずにデーモンに変更を加え構成を再ロードすることが有効な例としては、以下のような場合があります。

  • Webサーバーの構成を変更してApacheを再ロードする場合
  • 必要のないinetdのログイン・サービスを除去する場合
  • ネットワークの設定内容を変更する場合
  • 新しいファイルシステムをNFS経由でエクスポートする場合
  • ファイアウォールを開始/停止する場合

システム・サービスを操作する場合の一般的な方法としては、まず直接/etc/init.d のスクリプトを扱うことが考えられます。これらのスクリプトは、対象とするサービスを操作するためのパラメーターをとります。パラメーターを指定せずにスクリプト名だけをタイプすれば、どんなオプションが利用できるのかを調べることができます。一般的なパラメーターには以下のものがあります。

  • start: 停止中のサービスを開始する
  • stop: 実行中のサービスを停止する
  • restart: 実行中のサービスを停止した後、再開する。停止中のサービスは開始される
  • reload: 接続を切断することなくサービスの構成を再ロードする
  • status: サービスが実行中か否かを出力する

次のコマンドは、接続されているユーザーのセッションをまったく終了させることなくxinetdの構成を再ロードする例です (/etc/xinetd.confに変更を加える場合に便利です)。

/etc/init.d/xinetd reload

Red Hatには、サービスを操作するためのservice というコマンドが用意されています。service コマンドは、スクリプト名そのものをタイプするのと同じ機能を提供します。構文は以下のとおりです。

service script-name [parameter]

たとえば、以下のような使い方をします。

service xinetd reload

SuSEにもrc というコマンドが用意されています。これは、上のservice コマンドと似ていますが、コマンドとスクリプト名の間にスペースを入れません。構文は以下のとおりです。

rc{script-name} parameter

たとえば、以下のような使い方をします。

rcapache start

カーネル・パラメーターを変更する場合と同様、システムをリブートすると、サービスに対してなされた変更は失われてしまいます。サービスを管理して (ブート時を含め) いろいろな実行レベルでサービスを開始できるようにするためのchkconfig コマンドを採用するディストリビューションも増えてきています。本稿執筆時点では、chkconfig コマンドの構文はLinuxのバージョンによって少しずつ違っていますが、パラメーターを指定せずにchkconfig コマンドを入力すると、使い方の説明が表示されます。chkconfig の詳細は、マニュアル・ページのchkconfig(8) にも示されています。

まとめ

/proc ファイルシステムを使ってLinuxカーネルを即席で設定するというのは、軽々しく行うべきことではありませんが、その構造やいろいろなファイルとかパラメーターの操作方法が理解できれば、サーバーを24時間稼働し続けるための強力なツールを掌中にしたことになります。

謝辞

本稿を校正していただいたAdrian Fewings氏に感謝の意を表したいと思います。


ダウンロード可能なリソース


関連トピック

  • Linux Kernel ArchivesでLinuxのカーネルの ダウンロード、活動への参加、学習を行うことができます。
  • カーネル・ソースのインストール先にあるDocumentationディレクトリーにカーネルに関する説明文書があります。
  • Linux Gazetteに/proc仮想ファイルシステムについての詳しい説明があります。
  • sysctl(8) およびsysctl.conf(8) についてはマニュアル・ページを参照してください。
  • Linux Documentation Project のホームページには、Linux関係のいろいろな文書が掲載されています。
  • ハードウェアの問題を解決するためのガイドに、「Linuxハードウェア安定化ガイド: 第1回」(developerWorks、2001年3月) があります。
  • Understanding Linux configuration files」(developerWorks、2001年12月) には、許可やシステム・アプリケーションやデーモンなどを管理するためのファイルの概要が紹介されています。
  • developerWorks のLinuxゾーンには他にもLinux開発者向けの参考文献が多数掲載されています。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=226644
ArticleTitle=Linuxを即席で管理する
publish-date=05142003