Linuxディストリビューションを使用する場合、一部のプロセスとサービスは並行して実行されます。一部のユーザーは、ユーザーの知らないうちにバックグラウンドで実行できます。不要なサービスを実行すると、システムリソースの多くが消費されたり、対策が考慮されていない場合にセキュリティの問題が発生したりする可能性があります。
したがって、システムで実行されているすべてのサービスを知る必要があります。この記事では、Linuxマシンで実行中のサービスを一覧表示するために使用できるすべての方法について説明します。
Linuxで実行中のサービスを確認する方法
まず、Linuxサービスについてよく理解しましょう。サービスに初期化がある場合–スクリプト 、次に3つのステータスがあります:
- 開始
- 停止
- 再起動
これらはすべて–サービスで実行されます 指図。たとえば、 network-managerを再起動するには サービス、次のコマンドを実行します:
sudo service network-manager restart
serviceコマンドは、/etc/init.dに保存されているinitスクリプトを使用して各サービスを参照します Ubuntuおよびその他のDebianベースのディストリビューション、および etc / rc.d / init.d RedHatベースのLinuxディストリビューション用。一部のサービス名は、ディストリビューションごとに異なります。たとえば、Apache WebサーバーサービスはCentOSではhttpd、UbuntuではApache2です。
System V(SysV)|アップスタート| Systemd
多くのLinuxディストリビューションは、次のinitシステムに分類されます。
- 初期のinitシステムであるSystemV。
- 起動
- systemd。これはこの記事を書いている時点での最新のinitシステムです。
System V(SysV)
System Vまたは一般にSysVとして知られているのは、古いLinuxディストリビューションで使用されている古いinitシステムであり、元のUnixにまでさかのぼります。 SysVは、/ etc /init*にあるシェルスクリプトを使用して起動プロセスを管理します。 /etc/init.d/sshdを使用している場合 サービスの開始または停止を開始します。次に、SystemVシステムで使用しています。
InitSystemの起動
これは、/ sbin/initデーモンの代わりとして機能するイベントベースのinitシステムです。 Upstart initシステムは、起動、シャットダウン中のサービスの開始と停止を管理し、システムの実行中にサービスを監視するために使用されました。 Upstartは当初、他の古いディストリビューションで使用されていた古いSystem Vを置き換えるために、UbuntuLinuxディストリビューション用に開発されました。
Systemd
これは、ほとんどのLinuxディストリビューションが移行している新しいinitシステムです。これは、起動プロセスの高速化、依存関係の管理などを目的として開発されました。 systemctl restart sshdを使用している場合 サービスの開始または停止を開始してから、Systemdシステムで使用しています。
System V(SysV)initシステムで実行中のすべてのサービスを確認します
SysVinitシステムで実行中のすべてのサービスを一覧表示するために使用できるターミナルコマンドのいくつかを見てみましょう。
service --status-all

上記のコマンドは、システムで実行中のすべてのサービスを一覧表示します。実行中のサービスが多い場合は、追加のパラメータを使用できます – more およびless 整理された明確なビューでサービスを一覧表示します。
service --status-all | less

service --status-all | more

システムで現在実行されているサービスのみを一覧表示するには、次のコマンドを実行します。
service --status-all | grep running
特定のサービスのステータスを表示するには、次のコマンドを実行します。
service --status-all | grep [service_name] e.g service --status-all | grep httpd
または、以下のコマンドを実行して、特定のサービスのステータスを表示することもできます。
service httpd status
起動時に有効になっているすべてのサービスを一覧表示するには、次のコマンドを実行します。
chkconfig --list
Upstartinitシステムで実行中のすべてのサービスを確認する
Upstartinitシステムを実行しているLinuxシステムで実行されているすべてのサービスを一覧表示するには、次のコマンドを実行します。
initctl list
Systemdinitシステムで実行中のすべてのサービスを確認する
Systemd initシステムを実行しているLinuxシステムで実行中のすべてのサービスを一覧表示するには、次のコマンドを実行します。
systemctl

上記のコマンドから、データがUNIT、LOAD、ACTIVE、SUB、DESCRIPTIONの5つの列に表示されていることがわかります。各列の意味を見てみましょう:
- UNIT –対応するSystemdユニット名を表示します。
- LOAD –この列には、現在のユニットがメモリにロードされているかどうかが表示されます。
- アクティブ–この列は、ユニットが使用中(アクティブ)かどうかを示します。
- SUB –特定のユニットの実行状態を説明します。
- 説明–特定のユニットの詳細な説明を提供します。
以下のコマンドを使用して、実行中のサービスをタイプに基づいて一覧表示することもできます。
systemctl list-units --type service

現在の状態に基づいてサービスを一覧表示することもできます。前のコマンドの出力と比較的似ていますが、もう少し簡単です。
systemctl list-unit-files --type service

特定のサービスのステータスを一覧表示するには、次のコマンドを実行します。
systemctl status [service_name] e.g systemctl status acpid.path

システムで現在実行されているサービスのみを一覧表示するには、次のコマンドを実行します。
systemctl | grep running

起動時に有効になっているすべてのサービスを一覧表示するには、次のコマンドを実行します。
systemctl list-unit-files | grep enabled

systemd-cgtopコマンドを使用して、上位のコントロールグループとそのシステムリソースの使用状況(I / O、CPU、タスク、メモリなど)を表示することもできます。
systemd-cgtop

pstreeも使用できます システムで実行中のすべてのサービスを一覧表示します。 Pstreeは、 Systemdからこの情報を取得します システム出力。
pstree

pstree SystemVintシステムでも使用できます。 SysVinitシステムからの出力をキャプチャします。
pstree
chkserviceを使用することもできます Systemdシステムで実行中のすべてのサービスをチェックするユーティリティ。プリインストールされていません。ただし、以下のコマンドを使用してターミナル経由でインストールできます:
sudo apt-get install chkservice

chkserviceを開始するには、 以下のコマンドを実行してください。スーパーユーザー権限が必要であることに注意してください。
sudo chkservice

この素晴らしいツールに付属するすべての機能を表示するには、[?を押してください ] 鍵。ヘルプメニューが開きます。

結論
これらは、Linuxシステムで実行中のすべてのサービスをチェックするために使用できるコマンドとユーティリティの一部です。この投稿で説明していないコマンドやツールがある場合は、コメントセクションで読者に知らせてください。