ホームページ  >  記事  >  運用・保守  >  Linux のサービスの 2 つのカテゴリは何ですか?

Linux のサービスの 2 つのカテゴリは何ですか?

青灯夜游
青灯夜游オリジナル
2022-04-12 18:57:242905ブラウズ

Linux サービスは、管理方法に応じて、「スタンドアロン」と「スーパーデーモン」、つまり独立した管理サービスと統合管理サービスの 2 つのカテゴリに分類されます。独立管理サービスは、他のメカニズムによる管理を必要とせずに独立して開始できますが、統合管理サービスは統合デーモンを通じて開始および管理されます。

Linux のサービスの 2 つのカテゴリは何ですか?

#このチュートリアルの動作環境: CentOS6 システム、Dell G3 コンピューター。

Linux システム サービス (デーモンとも呼ばれます) は、メモリ内に常駐し、必要なサービス (システム サービスまたはネットワーク サービス) を提供するために実行し続けるプロセスを指します。

分類

Linux システム サービスは、管理方法に応じて、主にスタンドアロンとスーパー デーモンの 2 つのカテゴリに分類されます。つまり、独立管理サービスと統合管理サービスです。

スタンドアロン: このタイプのサービス メカニズムは比較的単純で、サービスを独立して開始できます。その特徴は次のとおりです:

1. 他のメカニズムによる管理を必要とせずに、独立して開始できます
2. スタンドアロン サービスが開始され、メモリに読み込まれると、常にサービスが停止されるまでメモリ空間とシステム リソースを占有します。
3. サービスは常に実行されているため、クライアントのリクエストに対する応答が速くなります。

典型的なスタンドアロン サービスには、httpd および ftp が含まれます。

スーパー デーモン: この管理メカニズムは、デーモンは、他のサービスの開始と管理を担当します。 CentOS6.X では、このスーパーデーモンは xinetd プログラムです。機能は次のとおりです:

1. すべてのサービスは xinetd によって制御されるため、ネットワーク ファイアウォールなどの xinetd のセキュリティ制御メカニズムが存在する可能性があります
2. clnet リクエストの前に、必要なサービスは存在しません。 available Started; xinetd は、クライアントがサービスを要求するまで、対応するサービスを起動しません。接続が終了すると、対応するサービスは閉じられます。そのため、スーパーデーモン方式は必ずしもシステムリソースを占有するわけではありません## 3. リクエストがあったときのみサービスを起動するため、当然サーバー側の応答速度はスタンドアロン方式ほど速くありません

典型的なスーパー デーモン サービスには、telnet などがあります。

##さまざまな起動方法

Linux のさまざまなサービスサービスを開始する前に、環境の検出、構成ファイルの分析、PID ファイルの計画、およびその他の関連操作を実行します。スタンドアロンモードとスーパーデーモンモードでは起動スクリプトの配置場所が異なり、当然起動方法も異なります。

スタンドアロン

起動スクリプトスタンドアロン起動スクリプトは /etc/init.d/ ディレクトリにあり、実際、ほとんどすべてのサービス起動スクリプトがここにあります。

[root@localhost init.d]# ls /etc/init.d/
abrt-ccpp         htcacheclean    ntpd         smartd
abrtd             httpd           ntpdate      snmpd
xinetd
 ......(省略)

このディレクトリには、既知の httpd などのスタンドアロン サービス起動スクリプトだけでなく、

xinetd

も存在することに気づきましたか?これはどういう意味ですか? これは、xinetd サービスが実際にスタンドアロン管理方法を使用していることを示しています。考えてみてください。xinetd は多くのスーパー デーモン サービスの開始と停止を担当するため、メモリ内に常駐する必要がありますか~

スタートアップ メソッド

方法 1:

すべての起動スクリプトは /etc/init.d/ にあるため、それらを直接呼び出す方が良いでしょう。

[root@localhost init.d]# /etc/init.d/crond 
Usage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
直接呼び出すと使用法が表示され、

[root@localhost init.d]# /etc/init.d/crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

とても簡単です。

方法 2:

サービス スクリプトを使用することもできます:

[root@localhost init.d]# service crond status
crond (pid  3278) is running...
これは簡単ですが、サービスはスタンドアロン サービスの管理にのみ使用できます。

还有,这个用法可以查看系统所有stand-alone服务的状态

[root@localhost init.d]# service --status-all
abrt-ccpp hook is installed
abrtd (pid  2331) is running...
abrt-dump-oops is stopped
acpid (pid  1807) is running...
......(省略)

注:

サービス スクリプトはすべての Linux ディストリビューションで利用できるわけではないため、/etc/init.d/* [アクション] を使用することをお勧めします。また、原理を理解するのにも役立ちます~~~

スーパーデーモン

##起動スクリプト

#スーパーデーモン起動スクリプトは/etc/xinetd.d/に配置されています。

[root@localhost xinetd.d]# ls /etc/xinetd.d/
chargen-dgram   daytime-stream  echo-dgram   tcpmux-server  time-stream
......(省略)
どのサービスがスーパーデーモン モードで開始されているかを確認します:

方法 1: chkconfig を使用して、xinetd ベースのサービスのサービスの起動ステータスを確認します:

[root@localhost xinetd.d]# chkconfig 
......
xinetd based services:
    echo-dgram:     off
    echo-stream:    off
    rsync:          off
    tcpmux-server:  off
    telnet:         on
    ......

方法 2: 直接表示上記のサービスの起動スクリプト

[root@localhost xinetd.d]# grep -i 'disable' /etc/xinetd.d/*
......
/etc/xinetd.d/daytime-dgram:    disable     = yes
/etc/xinetd.d/daytime-stream:   disable     = yes
/etc/xinetd.d/discard-dgram:    disable     = yes
/etc/xinetd.d/discard-stream:   disable     = yes
/etc/xinetd.d/echo-dgram:   disable     = yes
/etc/xinetd.d/telnet:   disable = no
......

disable=noは、サービスが有効であることを意味します。


起動方法

#起動スクリプトに disable=no がある場合、それは、サービスがオンになっているので、起動方法は次のとおりです:

1. まず起動スクリプトを編集し、有効にする必要があるサービスの無効項目を no に変更します

2. 次に、xinetd を再起動します。 etc/init.d/xintd restart [xinetd はスタンドアロン サービスであるため]

関連する推奨事項: 「
Linux ビデオ チュートリアル

以上がLinux のサービスの 2 つのカテゴリは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。