サービスとデーモンという言葉をよく聞きますが、これはどういう意味ですか?それらの間に違いやつながりはありますか? Linux のサービスはメモリ内に常駐し、一部のシステム機能またはネットワーク機能を提供できるプログラムです。デーモンの直訳は、デーモンプロセスまたはバックグラウンドプロセスです。したがって、サービスとデーモンを区別せずに同じものとして考えることができます。
初期の init 管理メカニズム
centOS6 では、init サービス管理メカニズムがまだ使用されていました。 centOS7でも使えるものもあるので簡単に紹介します。主に次の機能を確認します:
サービスの起動、シャットダウン、状態確認など。
サービスを開始します: /etc/ init.d/ nginx start
サービスを再起動します: /etc/init.d/nginx restart
サービスを閉じます: /etc/ init.d/nginx stop
ステータスビュー: /etc/init.d/nginx status
サービス起動方法
独立起動: 一般的な mysqld、php-fpm、nginx、httpd およびその他のサービスなど、ほとんどのサービスがこのモードを採用しています。
スーパー デーモンによってホストおよび開始される: これらのサービスの起動は、別のサービスによってホストされます。これらのサービスをホストするサービスがスーパー デーモンになります。一般的なスーパー デーモンには、inetd および xinetd が含まれます
実行レベル
Linux には、0、1、2、3、4、5、6 の 7 つの実行レベルがあります。一般的に使用されるものは次のとおりです。
1 シングルプレイヤー メンテナンス モード
3 プレーン テキスト モード
5 グラフィック モード
各実行レベルの起動スクリプトは、/etc/rc[0-6].d/SNNdaemon を介して /etc/init.d/daemon にリンクされます。
ll /etc/rc3.d/S55nginx lrwxrwxrwx 1 root root 15 Sep 21 11:30 /etc/rc3.d/S55nginx -> ../init.d/nginx
S は起動、NN は数字を意味します。これらの数字はスクリプトの実行順序を示します。数字が小さいほど最初に実行されます。この実行順序により、サービスの依存関係を適切に管理できます。
#ブート時にサービスを自動開始する
#systemd 管理メカニズム##centos7 以降、以前の init 管理メカニズムは廃止され、代わりに systemd が使用されます。 systemd 管理の違いを見てみましょう。
すべてのサービスを並行して処理して、起動プロセスを高速化します。
サービスを 1 つずつ開始する init とは異なり、systemd は多くのサービスを同時に開始できます。したがって、これにより起動の待ち時間が大幅に短縮されます。
サービスの依存関係を解決する
たとえば、サービス B を開始するには、まずサービス A を開始する必要があります。このとき、systemd を使用してサービス B を開始すると、サービス B が開始されます。自動的に依存関係をチェックし、サービス B を開始する前にサービス A を開始します。
ユニットの種類
init に 2 つの起動メソッドしかないスタンドアロンやスーパーデーモンと比較して、systemd では統一されたサービスユニット (ユニット) とユニット分割が定義されています。サービス、ソケット、ターゲット、パス、スナップショット、タイマー、その他のタイプに分類されます。
下位互換性のある init サービス スクリプト
/etc/inid.d/ にある古いサービス起動スクリプトも systemd を通じて管理できます。注: /etc/init.d ディレクトリ内のサービス起動スクリプトを手動で開始すると、systemd はサービスの実行ステータスを検出できなくなります。
# systemctl status mysqld ● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: active (running) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago …… # /etc/init.d/mysqld restart Shutting down MySQL.... [ OK ] Starting MySQL. [ OK ] [root@lijia ~]# systemctl status mysqld ● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: active (exited) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago ……init と systemd に関しては、systemd を習得することに重点を置く必要があり、init についても理解する必要があります。
以上がLinux でのシステム サービスの概要 - init、systemdの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。