Linuxについて知る:/etc/init.dディレクトリ

Linuxを使用している場合は、 init.d ディレクトリ。しかし、このディレクトリは正確に何をするのでしょうか?最終的には1つのことを実行しますが、システム全体に対して1つのことを実行するため、 init.d はとても重要です。の init.d ディレクトリには、システム上のさまざまなサービスの多数の開始/停止スクリプトが含まれています。からすべて 鋭いx11-common このディレクトリから制御されます。もちろん、それほど単純ではありません。

あなたが見れば /等 ディレクトリには、次の形式のディレクトリがあります。 rc#.d (#は数値で、特定の初期化レベルを反映しています-0から6まで)。これらの各ディレクトリ内には、プロセスを制御する他の多くのスクリプトがあります。これらのスクリプトは、「K」または「S」で始まります。すべての「K」スクリプトは「S」スクリプトの前に実行されます。そして、スクリプトの場所に応じて、スクリプトがいつ開始されるかが決まります。ディレクトリ間では、システムサービスは、十分に油を塗ったマシンのように連動します。しかし、killコマンドやkillallコマンドを使用せずに、プロセスをきれいに開始または停止する必要がある場合があります。それは /etc/init.d ディレクトリが便利です。

Fedoraのようなディストリビューションを使用している場合、このディレクトリは次の場所にあります /etc/rc.d/init.d 。場所に関係なく、同じ目的を果たします。

のスクリプトを制御するために init.d 手動でroot(またはsudo)アクセスが必要です。各スクリプトはコマンドとして実行され、コマンドの構造は次のようになります。

/etc/init.d/command OPTION

どこ コマンド 実行する実際のコマンドであり、 オプション 次のいずれかになります。

  • 開始
  • やめる
  • リロード
  • 再起動
  • 強制リロード

ほとんどの場合、どちらかを使用します 起動停止、 または 再起動。 したがって、ネットワークを停止する場合は、次のコマンドを発行できます。

/etc/init.d/networking stop

または、ネットワークに変更を加えて再起動する必要がある場合は、次のコマンドで変更できます。

/etc/init.d/networking restart

このディレクトリにあるより一般的なinitスクリプトには、次のものがあります。

  • ネットワーキング
  • サンバ
  • apache2
  • ftpd
  • sshd
  • ダブコット
  • mysql

もちろん、より頻繁に使用されるスクリプトがディレクトリに存在する可能性があります。これは、インストールした内容によって異なります。上記のリストは、Ubuntu Server 8.10のインストールから取得したものであるため、標準のデスクトップインストールでは、ネットワークタイプのスクリプトが少し少なくなります。

しかし、/ etc / rc.localはどうですか

私がかなり使用していた3番目のオプションがあります。このオプションは /etc/rc.local 脚本。このファイルは、他のすべてのinitレベルのスクリプトが実行された後に実行されるため、起動時に発行したいさまざまなコマンドを配置しても安全です。多くの場合、このスクリプトにはnfsなどのマウント手順を記述します。これはまた、「トラブルシューティング」スクリプトを配置するのに適した場所です。たとえば、ある理由で、Sambaが起動したくないように思えるマシンを使用していた場合。 Sambaデーモンが起動時に初期化するように設定されていることを確認するためのチェックも行いました。したがって、これまでにすべての時間を費やす代わりに、次のように単純に行を配置しました。

/etc/init.d/samba start

の中に /etc/rc.local スクリプトとSambaは魅力のように機能しました。最終的に私は戻ってこの問題のトラブルシューティングを行います。

最終的な考え

Linuxは柔軟です。 Linuxは非常に柔軟性が高いため、単一の問題を解決する方法はほぼ必然的に数多くあります。システムサービスの開始は、そのような問題の1つです。の助けを借りて /etc/init.d システム(および /etc/rc.local )サービスが開始されるので、安心できます。