Linux の Systemd で実行中のすべてのサービスを一覧表示する方法

小さな手を動かして大金を稼いで、親指を立ててください!

Linux システムは、さまざまなシステム サービス (プロセス管理、ログイン、syslog、cron など) およびネットワーク サービス (リモート ログイン、電子メール、プリンター、仮想ホスト、データ ストレージ、ファイル転送、ドメイン名解決、など) (DNS を使用)、動的 IP アドレスの割り当て (DHCP などを使用)。

技術的には、サービスはバックグラウンドで継続的に実行され、リクエスト (特にクライアントから) が届くのを待つプロセスまたはプロセスのグループ (デーモンと呼ばれることが多い) です。

Linux は、通常はプロセス マネージャーまたはサービス マネージャーを通じて、サービスを管理するさまざまな方法 (開始、停止、再起動、システム起動時の自動起動の有効化など) をサポートしています。すべてではないにしても、ほとんどの最新の Linux ディストリビューションは現在、同じプロセス マネージャー systemd を使用しています。

Systemd は、Linux 用のシステムおよびサービス マネージャーであり、init プロセスに代わるものであり、SysV および LSB init スクリプトと互換性があり、systemctl コマンドが systemd を管理するための主要なツールです。

このガイド[1]では、Linux の systemd で実行中のすべてのサービスを一覧表示する方法を説明します。

Linux の SystemD で実行中のサービスを一覧表示する

引数を指定せずに systemctl コマンドを実行すると、ロードされたすべての systemd ユニット (systemd ユニットの詳細については systemd のドキュメントを参照してください) のリストが表示されます。これにはサービスも含まれ、そのステータス (アクティブかどうか) が示されます。

systemctl 
代替

システムに読み込まれているすべてのサービス (アクティブ、実行中、終了中、または失敗したもの) を一覧表示するには、 --type スイッチとサービス値を指定して list-units サブコマンドを使用します。

# systemctl list-units --type=service
OR
# systemctl --type=service
代替

ロードされているがアクティブなサービス (実行中および終了済みの両方) をすべてリストするには、以下に示すように、値 active を指定して --state オプションを追加します。

# systemctl list-units --type=service --state=active
OR
# systemctl --type=service --state=active
代替

ただし、実行中のすべてのサービス (つまり、ロードされ実行中のすべてのサービス) の概要を簡単に確認するには、次のコマンドを実行します。

# systemctl list-units --type=service --state=running 
OR
# systemctl --type=service --state=running
代替

上記のコマンドを頻繁に使用する場合は、図に示すように ~/.bashrc ファイルにエイリアス コマンドを作成して、簡単に呼び出すことができます。

vim ~/.bashrc

次に、スクリーンショットに示すように、エイリアスのリストの下に次の行を追加します。

alias running_services='systemctl list-units  --type=service  --state=running'
代替

ファイルの変更を保存して閉じます。今後は、「ru​​nning_services」コマンドを使用して、サーバー上に読み込まれ実行されているすべてのサービスのリストを表示します。

# running_services #use the Tab completion 
代替

また、サービスの重要な側面は、サービスが使用するポートです。デーモンがリッスンしているポートを確認するには、次のように netstat または ss コマンドを使用できます。

ここで、フラグ -l はリッスンしているすべてのソケットを出力し、-t はすべての TCP 接続を出力し、-u はすべての UDP 接続を出力し、-n は (アプリケーション名の代わりに) 数値のポート番号を出力し、-p はアプリケーション名を出力します。

# netstat -ltup | grep zabbix_agentd
OR
# ss -ltup | grep zabbix_agentd

5 番目の列は、ソケット: ローカル アドレス: ポートを示します。この場合、プロセス zabbix_agentd はポート 10050 で待機しています。

代替

また、サーバーが、選択したサービスまたはポートとの間のトラフィックをブロックまたは許可する方法を制御するファイアウォール サービスを実行している場合は、firewall-cmd または ufw コマンドを使用して、ファイアウォールで開かれているサービスまたはポートを一覧表示できます (使用している Linux ディストリビューションに応じて異なります)。

# firewall-cmd --list-services   [FirewallD]
# firewall-cmd --list-ports

$ sudo ufw status     [UFW Firewall]
代替

今のところは以上です!このガイドでは、Linux の systemd で実行中のサービスを表示する方法を説明しました。また、どのポート サービスがリッスンしているかを確認する方法と、システムのファイアウォールでどのサービスまたはポートが開いているかを確認する方法についても説明しました。

参照

[1]

ソース:https://www.tecmint.com/list-all-running-services-under-systemd-in-linux/

この記事はmdniceマルチプラットフォームによって公開されています

おすすめ

転載: blog.csdn.net/swindler_ice/article/details/131276644