Linux システム サービスを表示する 5 つの方法
Linux システム サービス (デーモンとも呼ばれます) は、Linux の起動時に自動的にロードされ、Linux の終了時に停止されるシステム タスクです。
この記事では、Linux システムで実行中のすべてのサービスを一覧表示する方法と、サービスの現在のステータスを確認する方法を説明します。
Centos/RHEL 7.X の systemd システム サービス ビュー
CentOS 7.x 以降、CentOS はデーモンの代わりに systemd サービスを使用し始め、システムの起動および管理システム サービスに関連するすべてのコマンドは systemctl コマンドに置き換えられました。
systemctl list-unit-files
コマンドの出力は次のとおりです。
実行中のすべての systemd サービスを表示するには、次のコマンドを実行します。
systemctl | more
それ以外に、次のコマンドも使用できます。
systemctl list-units --type service
結果で特定のサービスを検索する場合は、パイプと grep コマンドを使用できます。
systemctl | grep "apache2"
netstat コマンドを使用してシステム サービスを表示する
netstat コマンドは、アクティブなネットワーク接続、インターフェイス統計分析、およびルーティング テーブルのステータスを確認するために使用されます。このコマンドはすべての Linux ディストリビューションで使用でき、次にシステム サービスを表示するために使用します。
サービスとそのサービスがリッスンするポートを表示します。
netstat -pnltu
システム サービス構成ファイルを通じてシステム サービスを表示する
サービス構成ファイルは /etc/services です。これは、ユーザー プログラムが使用する一連のサービスを含む ASCII ファイルです。このファイルには、サービス名、ポート番号、使用されるプロトコル、およびいくつかのエイリアスが含まれています。
このファイルについては、vim などのテキスト ツールを使用して表示できます。
vim /etc/services
systemd サービスのステータスを表示する
Linux システムの一部の新しいバージョンでは、init プロセスの代わりに systemd が使用されています。このようなシステムにおいて、システムサービスを確認するにはどうすればよいでしょうか? 次の構文を使用できます。
systemctl status service_name
たとえば、システム上で OpenSSH が実行されているかどうかを確認するには、次のコマンドを実行します。
systemctl status sshd
あるいは、次のコマンド形式を使用して、サービスが実行されているかどうかを確認することもできます。
systemctl is-active service_name
このコマンドを使用する場合、上記の例に対応するコマンドは次のとおりです。
systemctl is-active sshd
同時に、次のコマンドを使用して、サービスが有効になっているかどうかを確認することもできます。
systemctl is-enabled service_name
たとえば、OpenSSH サービスが有効になっているかどうかを確認するには、次のコマンドを入力します。
systemctl is-enabled sshd
以前のバージョンのサービス ステータス ビュー
実際のところ、初期の頃はそうは言えず、現在でもそのようなシステムは数多く存在しており、それらのシステム上で SysV init プロセスが実行されています。このシステムの場合、サービスのステータスを表示するコマンドは次のとおりです。
service service_name status
OpenSSH のステータスを確認する例として、対応するコマンドは次のとおりです。
service sshd status
次のコマンドを使用して、すべてのサービスのステータスを表示することもできます。
chkconfig --list
コマンドの出力は次のとおりです。