\r\n\r\n

Linuxのスタートアップサービスやデーモンを制御する方法

Linuxは、あなたが知らないうちに多くのアプリケーションを「バックグラウンド」で動かしています...ここでは、それらを制御する方法を紹介します。

Linuxは、あなたが気づいていないだけで多くのアプリケーションを "バックグラウンド "で動かしています。ここでは、その制御方法を説明します。

リナックスブート

パソコンの電源ボタンを押して少し待つと、見栄えの良いログイン状態に戻るという演習は、誰もが知っている。しかし、その間に何が起こるのか?古いLinuxユーザーなら、スクロールしてくる診断メッセージのページ(何ページも何ページも)を覚えていることでしょう。これらのメッセージには、ロード中のドライバー、検出されたファイルシステム、および起動中の異なるプロセスに関する情報が含まれています。

ブート」と「デスクトップログイン」の間に起こることを簡単に見てみましょう。

  1. コンピュータの電源を入れると、BIOSがロードされます。ハードウェアベンダー**が提供するソフトウェア(OSとは別)であり、セッションを開始するデバイスの設定が含まれています。
  2. これらの設定に応じて、BIOSはコンピュータの物理ディスクの1つ、特にブートローダーに制御を渡します。ブートローダには設定データを入れることができますが、主な仕事はオペレーティングシステムに制御を渡すことです。GRUBは、最近のほとんどのLinuxディストリビューションの標準的なブートローダです。
  3. ブートローダはLinuxオペレーティングシステムを起動する際に、カーネル(またはオペレーティングシステムのコア)をロードします。これがハードウェアに接続され、ブートプロセスと呼ばれるプロセスを開始します。
  4. このスタートアッププロセスは、システム上の他のすべてのプロセスを順番に起動する役割を担っています。これには、サーバーアプリケーション(美しいデスクトップログイン時に表示されるXサーバープロセスを含む)、いわゆる「デーモン」(CUPS印刷デーモンなど、バックグラウンドで特定のイベントを待機するプログラム)、その他のプログラム(スケジュールに従ってプログラムを実行するcronデーモンなど)などが含まれます。

これは私たちが気にする最後のステップです。コンフィギュレーションを設定して調整することで、デフォルトで起動するものを正確に制御することができます。

ガーディアン・プログラム&サービス

この論文では、これらの用語を互換的に使用します。両者には技術的な違いがありますが、本稿では割愛します。しかし、我々の目的からすると、これからレビューするツールで制御できるため、同じものである。

なぜ設定をいじるのか?

なぜわざわざこんなことをするのか、デフォルト値のままの方がいいのでは?

コンピュータの起動時に何が始まるかを設定する方法を知っておくと、いくつかの利点があります。

  • まず、パフォーマンスの向上です。新しいWebアプリケーションを試すためにApacheをインストールしたときのことを思い出してください。ダメ?しかし、アンインストールしない限り、ウェブサーバーはバックグラウンドで動作し、貴重なRAMを消費していました。スタートアップの設定を調整することで、インストールを維持しながら、必要なときだけ起動させることができるのです。(パフォーマンスを向上させる他のヒントはこちらをご覧ください)。
  • また、これらのプログラムの中には、セキュリティ上の問題が発生するものもあります。例えば、前述のApacheは、起動時に80番ポートにコンタクトするようにオープンします。Apacheにセキュリティ上の問題がある場合、そのポートを世界に開放することは、システムを危険にさらす可能性があります。必要なときにサーバーを起動し、終了したらすぐにシャットダウンするのがベストです。

現在の立ち上げプロセス

今日のLinuxシステムでは、以下に述べるように、いくつかの主要なブートシステムが使用されています。

初期設定

init は、Linux のベースとなったオリジナルの Unix システムにさかのぼると、長い間、標準的なブートシステムでした(独自の名前は SysVInit で、systemv Unix から取られました)。 init は、/etc/init.d または /etc/rc.d ディレクトリに格納されたブートスクリプトのセットに基づいています。ランレベル」という概念があるからこそ、ディストリビューションを起動すると、すぐにSystem Xをベースにしたグラフィカルなデスクトップログインができるのです。

initシステムはUnixの哲学に従って、一つのことをうまくやるからです。このシステムの支持者の主張の一つは、以下のいくつかの代替案とは異なり、やり過ぎないということです。

新規のお客様

アップスタートシステムは、老朽化したinitシステムを置き換えるCanonicalの試みである。initシステムとの互換性を確保しつつ、他の機能も提供します。イベント」をサポートすることで、**新しいハードウェアなど、システムの変化に反応することができます。さらに、アップスタートは古いパッケージやソフトウェアの後方支援を提供するために、古い init 構成で動作することができます。

しかし、Debian(Ubuntuパッケージの上流ソース)がsystemdに切り替えた時点で、Canonicalも同じようにすることを決めました。Ubuntu 15.04 (vivid Vervet)のリリースは、新しいブートシステムをデフォルトで使用する最初のバージョンとなりました。

システム

これは、現代における大きな炎上騒ぎの一つを引き起こした。initの欠点(ここで強調されている)を考慮して、systemd(またはシステムデーモン)が開発されました。これは、「すべての条件を満たしたときに」サービスを開始することを目的とした、まったく新しいシステムを採用しています。しかし、アップスタートと同様に、いくつかの顕著な例外を除いて、多くのパッケージによって提供される init スタイルのスクリプトをサポートすることができます。

上の画像にあるディレクトリの名前に注目してください、例えば "what this thing wants" これは systemd の "on-demand" 動作を示しています。"wants" Bluetooth access と条件を満たすと、systemd はそのためのサービスを開始します。

デーモン/サービス管理用ツール

コマンドラインからこれを行う方法を学ぶのも悪くないですが (init/Upstart の service コマンドや systemd の sysctl をチェックしてください)、ここではサービスを管理するためのヘルパープログラムをいくつか紹介します。設定を調整する必要がある場合もありますが、一般的には、有効にするか、デフォルトで自動的に実行されるように設定するか、無効にするかのいずれかを行う必要があります。無効化されたサービスは、いつでも開始(およびその後停止)できることに注意してください。

初期d

多くのユーザーにとって、rcconfツール(先に述べたサービスとの組み合わせ)は必要なことをすべて行ってくれます。テキストユーザーインターフェイス(TUI)は、利用可能なすべてのサービスを一覧表示します。矢印キーでリストを上下に移動し、スペースバーでサービスを開始するかどうか(アスタリスク)を切り替えることができます。リストとOK/キャンセルボタンの間はTabキーで移動し、スペースバーで選択することもできます。

Ubuntuで以下のようにインストールします。

sudo apt-get install rcconf

Red Hatは、CentOSやFedoraなどの派生製品にもデフォルトで存在するグラフィカルなアプリケーションであるService Configuration Toolを開発しました。上記のrcconfと同様のリストを提供し、デフォルトで実行するかしないかを設定するために、サービスのチェックとアンチェックを行う。また、これらのサービスを開始/停止/再開するためのボタンも用意されています。

システム

KDE の開発者は、systemd サービスを制御するために、彼らのシステム設定アプリケーションのモジュールを作成しました。システム管理」カテゴリにあり、サービス(または「ユニット」)の状態の表示、有効化/無効化、設定の編集を行うことができます。また、systemd の設定ファイル用のエディターも含まれています。

Ubuntuで以下のようにインストールします。

sudo apt-get install kde-config-systemd

SystemdManager は GTK ベースのアプリケーションで、いくつかのリポジトリ (Fedora や Arch を含む) で入手できます。Ubuntu ユーザーはその GitHub ページから .DEB ファイルを入手できます。Rust で書かれているので UI は少し変わっていますが、有効/無効や起動/停止のコントロールを見つけるのは簡単です。の制御を行い、中央の大きなペインでは設定の編集を行うことができます。

パッケージのダウンロードが完了したら、以下のツールを使ってインストールすることができます。

sudo dpkg -i systemd-manager-download.deb

また、GTKベースのデスクトップでは、systemadmツールでサービスを開始/停止/再起動する方法が用意されています。Ubuntuでは、以下のようにインストールされています。

sudo apt-get install systemd-ui

未来はシステムの中にある

この記事では init と systemd という2つの主要な起動管理システムを等しく取り上げてきましたが、ほとんどの主要ディストリビューションは後者に移行しています。独自の代替品を作成したCanonicalでさえ、デフォルトでsystemdを含む、壁に書かれた文字を見ているのです。

また、これらのプロセスを管理するためのヒントやトリックがあれば、コメントで教えてください。

  • 2021-03-15 11:22 に公開
  • 閲覧 ( 31 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ