全てのデーモン/サービスはオイラの管理下。もうみだりに再起動なんかしない!

全てのデーモン/サービスはオイラの管理下。もうみだりに再起動なんかしない!
このエントリーを含むはてなブックマークはてなブックマーク - 全てのデーモン/サービスはオイラの管理下。もうみだりに再起動なんかしない! FriendFeedで共有 Googleブックマークに追加 このエントリをつぶやくこのWebページのtweets

ワープロやWebブラウザ、ビデオ編集などで用いられる”デスクトップユーザにとって一般的”なアプリケーションは、ユーザが必要な時に起動し、作業が終われば終了させるものです。
一方、ネットワークサービスやファイル共有のsamba、Webサーバプログラムなどの場合には、システムの起動と共に自動的に起動し、ユーザからのリクエストに即座に対応できるように常に待機しています。
これらのようなサービスデーモンを開始、終了、リスタートを行う場合には、「/etc/init.d」以下にある起動スクリプトを使います。

ファイルブラウザでこのディレクトリを見てみると、NetworkManagerやbluetoothといったデーモン/サービスアプリケーションの起動スクリプト(形式はシェルスクリプト)が多数格納されています。

これらの起動スクリプトはテキストエディタで開くことができます。

さて、「/etc」ディレクトリ以下を見てみると、「rc0.d」から「rc6.d」そして「rcS.d」が格納されています。実はこの数字は「ランレベル」に相当しています。

これらのディレクトリの中を見てみると、先ほどの「/etc/init.d」内の各起動スクリプトへのショートカット(シンボリック・リンク)が入っています。

ここで頭に「K」がついているのが、そのランレベルでは停止となるもの。そう「Kill」の頭文字です。
そして頭に「S」がついているのが、そのランレベルで開始されるものです。「Start」の頭文字ですね。

Ubuntuデスクトップ版では、デフォルトのランレベルは「2」。さすがにほとんどが頭に「S」がついていますね。

これらの起動スクリプトは以下のようにコントロールします。Apache Webサーバである「httpd」を例とします。

# /etc/init.d/httpd start
# /etc/init.d/httpd stop
# /etc/init.d/httpd restart

これにより、わざわざコンピュータを再起動することなく、制御したいサービスだけを開始、停止、再起動することができるのです。

たとえ一つのサービス/デーモンがコケたとしても、他のサービスをストップさせることなく、問題が発生しているサービス/デーモンだけをストップさせたり、再起動できるのは、システム管理上欠かせないものです。

以上を理解しマスターすれば、「なんか調子悪いなぁ〜、クソ〜〜、再起動しちゃえ〜!」という事も少なくなっていくことでしょう。

■ついでに「ps aux」

本来、コマンドの解説は、これから先に追々やっていきますが、関連するコマンド解説を。

デーモン/サービスの稼働状況を調べるには、「実行中のプロセスを表示するコマンド=ps」が便利です。

あれ?何か挙動がおかしいな!?・・・と思った時に、システムの状況を調べられます。

auxというオプションをつけることで、そのシステム中で稼働するプロセスを一覧で表示してくれますので、「ps aux」とひとまとめで覚えてしまうのがいいかと思います。

a:自分以外のユーザーのプロセスも表示する
u:ユーザー名と開始時刻を表示する
x:制御端末のないプロセスの情報も表示する

システム運用に慣れてくると、どのプロセスが怪しいかが見当つくようになってきます。
その時には、「ps aux | grep xxxxxx」とすれば、狙いを定めて状況を調べることができます。

「|」(パイプ)は、2つのコマンドを組み合わせる機能を持ちます。
この場合には、ps aux コマンドを実行し、その結果に対して、「grep xxxxx」 コマンドを実行することができます。

この例では、すべてのユーザによる実行中のプロセスのうち、「scim-bridge」という文字を含むものの一覧を表示する。
という意味になります。


カフェでも!駅でも!海外でも!
外出先で快適インターネット!!
無線LANサービス「ホットスポット」

Related posts:

  1. Oh My God! Oh My Goddess!・・・Episode IV

About the Author