\r\n\r\n
Linuxは、あなたが気づいていないだけで多くのアプリケーションを "バックグラウンド "で動かしています。ここでは、その制御方法を説明します。
パソコンの電源ボタンを押して少し待つと、見栄えの良いログイン状態に戻るという演習は、誰もが知っている。しかし、その間に何が起こるのか?古いLinuxユーザーなら、スクロールしてくる診断メッセージのページ(何ページも何ページも)を覚えていることでしょう。これらのメッセージには、ロード中のドライバー、検出されたファイルシステム、および起動中の異なるプロセスに関する情報が含まれています。
ブート」と「デスクトップログイン」の間に起こることを簡単に見てみましょう。
これは私たちが気にする最後のステップです。コンフィギュレーションを設定して調整することで、デフォルトで起動するものを正確に制御することができます。
この論文では、これらの用語を互換的に使用します。両者には技術的な違いがありますが、本稿では割愛します。しかし、我々の目的からすると、これからレビューするツールで制御できるため、同じものである。
なぜわざわざこんなことをするのか、デフォルト値のままの方がいいのでは?
コンピュータの起動時に何が始まるかを設定する方法を知っておくと、いくつかの利点があります。
今日の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 をチェックしてください)、ここではサービスを管理するためのヘルパープログラムをいくつか紹介します。設定を調整する必要がある場合もありますが、一般的には、有効にするか、デフォルトで自動的に実行されるように設定するか、無効にするかのいずれかを行う必要があります。無効化されたサービスは、いつでも開始(およびその後停止)できることに注意してください。
多くのユーザーにとって、rcconfツール(先に述べたサービスとの組み合わせ)は必要なことをすべて行ってくれます。テキストユーザーインターフェイス(TUI)は、利用可能なすべてのサービスを一覧表示します。矢印キーでリストを上下に移動し、スペースバーでサービスを開始するかどうか(アスタリスク)を切り替えることができます。リストとOK/キャンセルボタンの間はTabキーで移動し、スペースバーで選択することもできます。
Ubuntuで以下のようにインストールします。
sudo apt-get install rcconfRed Hatは、CentOSやFedoraなどの派生製品にもデフォルトで存在するグラフィカルなアプリケーションであるService Configuration Toolを開発しました。上記のrcconfと同様のリストを提供し、デフォルトで実行するかしないかを設定するために、サービスのチェックとアンチェックを行う。また、これらのサービスを開始/停止/再開するためのボタンも用意されています。
KDE の開発者は、systemd サービスを制御するために、彼らのシステム設定アプリケーションのモジュールを作成しました。システム管理」カテゴリにあり、サービス(または「ユニット」)の状態の表示、有効化/無効化、設定の編集を行うことができます。また、systemd の設定ファイル用のエディターも含まれています。
Ubuntuで以下のようにインストールします。
sudo apt-get install kde-config-systemdSystemdManager は 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を含む、壁に書かれた文字を見ているのです。
また、これらのプロセスを管理するためのヒントやトリックがあれば、コメントで教えてください。