我々は、Linuxを上陸させた後、私たちは知っていると、システムは、このような日常的なスケジューリングサービスcrond、印刷サービス、メールサービスなど多くのサービス、を提供してくれます。それでは、どのようにそれを開始するためにこれらのサービスはありますか?
約置く最初の質問、Linuxのブートプロセスを見てみましょう。
1.Linuxシステム・スタートアップ
開始プロセスは5つの段階に分かれています。カーネルの起動、initプロセスを実行し、システムの初期化、端末の設立、ユーザのログインシステム。
1.カーネルのブート
コンピュータの電源をオンにすると、最初にBIOS POST、セット(通常はハードディスク)に応じて、BIOSのブートデバイスを開始します。オペレーティングシステムがハードウェアを引き継ぐようにした後、最初の/ bootディレクトリにあるカーネルファイルに読み込みます。
2.初期化を実行します
initプロセスは、すべてのプロセスシステムの出発点です。このプロセスがなければ、システム内の任意のプロセスが開始されません。initプロセスは、最初の設定ファイルを読みに行くだろう。
初期化タスクは、デーモンを実行することです。
初期化の種類:
実行レベル
3.システムの初期化
rc.sysinitが存在が呼び出され、初期化設定ファイルのディレクトリ/etc/rc.dの中でスクリプトファイルを実行します。
主な作業は次のとおりです。ハードウェアモジュールがロードされ、優先度のタスクの数を実行され、ディスクをチェックし、スワップパーティションを有効にします。
ユーザーはchkconfigをすることができますまたは「システムサービス」の設定は、デーモンデーモンを実行する各実行レベル(サービスである)のために設定されます。
4.端末の確立
5.ユーザーログイン
コマンドラインのログイン、SSHログイン、ログインGUI:3のログインがあります。
2.systemdサービス管理メカニズム
centOS7.xは、LinuxはSystemVのは、長年にわたって使用し、ブートプロセスをあきらめた後、使用することは、サービス管理メカニズムを開始することにsystemd。
1.systemd利点
すぐに要求応答時に「1」オンデマンドスタートモード:にsystemdサービスは、一致するsystemctlを持つ唯一の命令です。
「2」デーモンカテゴリに従って:にsystemd管理サービスは、様々なサービスの機能を区別するために非常に多くあり、単位は、サービス単位として定義されている各サービス、および移動していたサービス(タイプ)の異なるタイプを分類する手段をシステムD 。systemdにサービス単位(ユニット)は、分類および管理者メモリを容易にするために、等サービス、ソケット、ターゲット、パス、スナップショット、タイマー、に分割されます。
「3」は、古いサービスinitスクリプトとの下位互換性があります。
2.systemd設定ファイルはディレクトリに配置されています
サービス起動スクリプトの設定ファイル:は/ usr / libに/にsystemd /システム/
生成されたサービススクリプトの実行システム:/実行/ systemdに/システム/
管理者が作成したスクリプトを実行します。/ etc / systemdに/システム/
サービスの3.
私たちは、それぞれのサービスは、ファイルを表し、サービスを決定するためにこれらのプロファイルの拡張子を入力することができ、ファイル名(拡張子を除く)は、サービス(プロセス)の名前です。
4.管理サービス
systemd initプロセス命令systemctl管理サービスの一種類のみ。
サービスの開始は、2つのタイプに分けられます:ブート、「現在」を開始します。
スタートのどちらのタイプには、大きな違いがあります
単一のサービス管理、起動と観測状況1. [スタート]
サービスはプロセスであり、私たちはサービスを管理するために殺す使用することができますが、欠点があるので、あなたがサービスを殺すために殺すを使用した場合、その後、systemctlは、このサービスを監視するために続行されませんので、我々は、管理するために、ここでsystemctlを使用しています。
サービス名、拡張子:ユニットは、2つの部分から構成されています。
サービスユニットのユニット種別が区別され、識別方法は、サービスの後に書式を追加することである。例えば、単位ATDシステムサービスは、このようなユニットのマルチユーザサービスのターゲット・タイプとしてatd.serviceは、multi-user.targetあります。
我々は、サービスを管理したい場合は、我々は唯一のサービス名(トップサービス名でクエリを)知っているが、拡張を行う方法がわかりませんか?
私たちは、systemdに設定ファイルを参照することができますは/ usr / libに/にsystemd /システム、サービスを決定することができ、拡張設定ファイルによる伸長を。
例1:
このサービスATDのステータスを確認
情報の積極的な二行をロードすることは、サービスが甲斐からブートし、現在の状態ではないことを教えてくれる、非常に重要です。
サービスのデフォルトの状態の分類(ロード赤い線で表示):
有効または無効にするデフォルトのデーモンを添加することによって、他のタイプがあります。
「1」静的:このサービスは、(サービスが特性に依存)ウェイクを有効に自分自身を起動することはできませんが、他のタイプのサービスかもしれません。
「2」マスク:このサービスはどのような場合には開始されません!それは(非削除)オフを書くことを余儀なくされたとして、それはsystemctlアンマスク方法によって元の状態に変更することができます。
サービスの現在のステータスの分類(コロンのアクティブラインの後の最初の単語に示されています):
「1」アクティブ(実行):Nシステムで実行される1つ以上のプログラムを表します。
「2」アクティブ(終了):一度だけサービスの正常終了を行う表します。
(待機中)「3」アクティブ:表現が実装されているが、それでも治療を継続するために他の事を待っています。
「4」非アクティブ:サービスが現在実行されていないことを示しています。
閉じるサービス:
閉じるchronyd.serviceサービスの1例
最初のサービスが閉じていない場合は、ブート時にサービスを開始し、その後、サービスを閉じchronyd.service systemctlストップを使用し、自動的にキャンセルchronyd.serviceを無効systemctl使用し、ステータスsystemctlステータスchronyd.serviceを確認してください。
このサービスが依存属性がBのサービスを存在している場合は閉じる、上記の問題がある場合、サービスBは、このサービスを再目覚めさせる可能性があります。
性質に依存サービス定期的な練習を閉じます。
あなたは、サービスAをオフにした場合、Aは、プロパティを持っており、このサービス自動ウェイク-Aは、依存サービス属性Bであってもよいことを示しているその依存サービスBは、;あなたは完全にこのサービスをオフにするときに、あなたは従属属性する必要がありますサービスBも閉じ。
プロパティにサービスAで依存不規則なプラクティスを閉じます。
サービスの強制解約をマスクsystemctlを使用
フォーマット:
systemctlマスクユニット//サービス名と拡張子の種類組成物によるユニット
システムマスクatd.service例えば
あなたがサービスの解約を強制するときは、サービスを開始し、systemctlない限りatd.serviceキャンセルログアウトのマスクを解除することはできません。
2. systemctlすべてのサービスのためのシステムを観察する上で
前のセクションでは、単一のサービス、注意深い観察、および機能をログアウトする依存サービスの開始についてです。そのシステム上でどのように多くのサービスを存在するのですか?これはにより必要となるリスト単位およびリストユニット・ファイルを観察します!次のように詳細な使用方法は次のとおりです。
フォーマット:
systemctl //等価systemctlリスト単位、上記システムユニットのプロモーター
systemctl --all //リストユニットのすべて(開始の開始には含まれません)
systemctlリストユニット・ファイル//インストールされているすべて記載されているユニットは、インストールは、/ usr / lib / systemdに/システム/ディレクトリに適切なファイルを持っています
他のフォーマットは、図に基づいて照会することができます。
3. systemctlは異なる動作環境(対象ユニット)を管理します