Windowsシステムと同様に、Linuxシステムにもさまざまなサービスがあります。アプリケーション間の通信の
dbus
ためのメッセージバスサービス、Bluetoothデバイスを接続するためのサービスなど、一部のサービスはコンピューターの管理に使用されますbluetooth
。サービスの別の部分は、ミドルウェアApache
、データベースなど、サーバーの外部業務専用ですMySQL
。このセクションでは、Linuxサービスについて学び、サービス管理方法について学びます。
サービス分類
インストール方法によれば、Linuxのサービスは主に、rpmパッケージマネージャーによってデフォルトでインストールされるサービス(Debianなどの一部のLinuxディストリビューションなど、aptパッケージマネージャーを使用)と、ソースコードパッケージを使用してインストールされるサービス(サードパーティのサービス)に分けられます。rpmパッケージマネージャーによってインストールされるサービスは、アクションのモードに応じて、独立したサービスと
xinetd
ネットワークデーモンサービスプログラムに基づくサービスに分割できます。一般サービスは独立したサービスです。
独立したサービス
独立したサービスはメモリに直接展開され、リクエストに直接応答します。メリットは迅速に応答することですが、デメリットは、より多くのサービスを開始すると、より多くのシステムリソースを占有し、それ
xinetd
よりも安全性が低くなることです。
Xinetdベースのサービス
xinetd
サービスとして、ネットワークデーモンサービス自体もメモリに直接独立してデプロイされ、一連のサービスを管理できます。ユーザーの要求はxinetd
、対応するサービスに転送され、プロセスを介して処理されます。利点は、サービスがシステムリソースを消費せずxinetd
、特定の保護メカニズムによって保護されることです。特定のネットワーク攻撃(DDOSなど)からサーバーを保護できます。
サービス開始と自己開始
サービス開始
サービスの開始/停止は、サービス(Windowsサービスと同じ)の現在の状態を示します。開始は、サービスが実行中であり、関連する機能を提供できることを意味します。停止は、サービスが現在実行されていないことを意味し、その機能を使用する前にサービスを開始する必要があります
サービスは自動的に開始します
サービスが自動的に開始するかどうかは、サービスのスタートアップの種類を記述します(Windowsの自動/手動と同じ)。自動開始により、システムの初期化時にサービスを開始できます。
インストールされているサービスを表示する
インストールされているサービスを表示するには、ファイルクエリとコマンドクエリの2つの主な方法があります。
ファイルによるクエリ
インストールされたサービスは、ソースパッケージインストールのデフォルトの場所から表示できます(これはデフォルトの場所であり、追加の設定がある場合は、別の場所に表示する必要があります)。デフォルトの場所は/usr/local
、rpmパッケージがデフォルトの場所にインストールされているため、表示に不便であり、通常は-e
オプションを使用しますアンインストール(手動での削除はより面倒です)
コマンドによるクエリ
新しいLinuxディストリビューションは、systemctl
コマンドを使用してシステム関連のコンテンツを表示し、サービスやステータスなどの情報を表示します。構文は次のとおりです。
systemctl list-units #查看当前内存中的资源(UNIT)
systemctl list-unit-files #查看所有资源(包括在文件中未加载的)
systemctl list-units --type=TYPE #查看指定类型的资源
#其中TYPE为下面列表中的UNIT类型
その中で、UNIT
(リソース)はシステムのすべての側面を含み、以下はUNIT分類1です。
タイプ | 説明 |
---|---|
サービス | サービス |
端末 | ハードウェアデバイスファイル |
マウント | デバイスのマウントポイント |
自動マウント | 自動デバイスマウントポイント |
道 | パスリソース |
範囲 | 非systemd デーモン外部プロセス |
スライス | プロセスグループ |
ソケット | 通信ソケット |
スワップ | パーティションファイルをスワップする |
タイマー | タイマー |
service
コマンドを 使用してサービスを表示することもでき、非ソースコードパッケージによってインストールされたサービスのみを表示できます
service #不加参数,查看服务列表;具体其他管理命令在下一节会讲到
serviceコマンドがサービスを開始したら、/etc/init.d
ディレクトリ内のサービスのスタートアップ構成を確認し、サービスのステータスを確認して、スタートアップアクションを実行します。
一部の(古い)Linuxディストリビューションは、chkconfig
コマンドを使用してRPMパッケージによってインストールされたサービスを表示します
chkconfig --list
ソースコードパッケージサービス管理
ソースパッケージインストールサービスの開始/停止
ソースパッケージを介してインストールされたサービスは、絶対パス(または環境変数)を介してソースパッケージの起動スクリプトを呼び出すことによって主に開始/停止されます(特定のパスについてはソースパッケージのインストール手順を参照するか、カスタムパスに従って検索してください)。ソースコードパッケージの起動/停止方法に違いがある場合がありますので、詳細はソースコードパッケージの説明ファイルをご確認ください。
例:ソースパッケージのデフォルトパスを介してインストールされたapache2
サービスを開始する
/usr/local/apache2/bin/apachestl start|stop
serviceコマンド を使用してサービスを開始する必要がある場合は、サービス起動スクリプトを/etc/init.d
ディレクトリにリンクできます。このservice
コマンドは、ディレクトリを表示してサービスを開始するため、リンクも開始できます。
参考ブログ:https: //www.cnblogs.com/zwcry/p/9602756.html↩︎