GNU/Linux >> Linux の 問題 >  >> Linux

Systemctlを使用したLinuxサービスの一覧表示

Linuxでは、サービスはバックグラウンドで実行されるプログラムです。サービスはオンデマンドまたは起動時に開始できます。

Linuxをプライマリオペレーティングシステムまたは開発プラットフォームとして使用している場合は、Webサーバー、ssh、cronなどのさまざまなサービスを処理します。システムの問題をデバッグするときは、実行中のサービスを一覧表示する方法やサービスのステータスを確認する方法を知ることが重要です。

最近のLinuxディストリビューションのほとんどは、デフォルトのinitシステムおよびサービスマネージャーとしてsystemdを使用しています。

Systemdは、Linuxシステムを管理するためのツールスイートです。マシンの起動、サービスの管理、ファイルシステムの自動マウント、イベントのログ記録、ホスト名のセットアップ、およびその他のシステムタスクに使用されます。

この記事では、Linuxでサービスを一覧表示する方法について説明します。

Linuxサービスの一覧表示#

Systemdは、サービス、ソケット、マウントポイント、デバイスなどのユニットの概念を使用します。ユニットは、iniのテキストファイルを使用して定義されます。 フォーマット。これらのファイルには、ユニット、その設定、および実行するコマンドに関する情報が含まれています。ファイル名拡張子は、ユニットファイルタイプを定義します。たとえば、システムサービスユニットファイルには.serviceがあります 拡張機能。

systemctl systemdの制御とサービスの管理に使用されるコマンドラインユーティリティです。これはsystemdエコシステムの一部であり、すべてのシステムでデフォルトで利用できます。

ロードされているすべてのサービスユニットのリストを取得するには、次のように入力します。

sudo systemctl list-units --type service
UNIT          LOAD      ACTIVE SUB     DESCRIPTION                                                              
cron.service  loaded    active running Regular background program processing daemon 
...

出力の各行には、左から右に次の列が含まれています。

  • UNIT -サービスユニットの名前。
  • LOAD -ユニットファイルがメモリにロードされているかどうかに関する情報。
  • ACTIVE -高レベルのユニットファイルのアクティブ化状態。アクティブ、リロード、非アクティブ、失敗、アクティブ化、非アクティブ化が可能です。これは、SUBの一般化です。 列。
  • SUB -低レベルのユニットファイルのアクティブ化状態。このフィールドの値は、ユニットタイプによって異なります。たとえば、サービスタイプのユニットは、デッド、終了、失敗、非アクティブ、または実行中のいずれかの状態になります。
  • DESCRIPTION -ユニットファイルの簡単な説明。

デフォルトでは、コマンドはロードされたアクティブユニットのみを一覧表示します。ロードされているが非アクティブなユニットも表示するには、--allを渡します オプション:

sudo systemctl list-units --type service --all

ロードされたものだけでなく、インストールされているすべてのユニットファイルを表示するには、次を使用します。

sudo systemctl list-unit-files
サービスステータスの表示#

サービスのステータスを確認するには、systemctl statusを使用します コマンド:

sudo systemctl status <service_name>.service

<service_name>の場所 確認したいサービスユニットの名前です。たとえば、実行するnginxサービスの現在のステータスを確認するには:

sudo systemctl status nginx.service
接尾辞「.service」は省略できます。 systemctl status nginx systemctl status nginx.serviceと同じです 。
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-23 19:13:50 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 3061052 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3061063 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3061064 (nginx)
      Tasks: 2 (limit: 470)
     Memory: 6.0M
     CGroup: /system.slice/nginx.service
             ├─3061064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─3061065 nginx: worker process

Dec 23 19:13:50 linuxize.dev systemd[1]: Starting A high performance web server and a reverse proxy server...

このコマンドは、次の情報を出力します。

  • Loaded -サービスユニットがロードされているかどうか、およびユニットファイルへのフルパス。また、ユニットが起動時に起動できるかどうかも表示されます。
  • ACTIVE -サービスがアクティブで実行されているかどうか。端末が色をサポートしていて、サービスがアクティブで実行中の場合、ドット( )および「アクティブ(実行中)」の部分は緑色で印刷されます。この行には、サービスの実行時間も表示されます。
  • Docs -サービスドキュメント。
  • Process -サービスプロセスに関する情報。
  • Main PID -サービスPID。
  • Tasks -ユニットを占めるタスクの数とタスクの制限。
  • Memory -使用済みメモリに関する情報。
  • CGroup -関連するコントロールグループに関する情報。

サービスステータスのみを確認する場合は、systemctl is-activeを使用してください 指図。たとえば、nginxサービスが実行されていることを確認するには、次のコマンドを実行します。

systemctl is-active nginx.service
active

このコマンドは、サービスステータスを表示します。サービスがアクティブな場合、コマンドは終了ステータス0を返します。これは、シェルスクリプト内でコマンドを使用する場合に役立ちます。

結論#

systemctlの使用方法を説明しました Linuxサービスを一覧表示し、そのステータスを確認するコマンド。


Linux
  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. systemctlコマンドを使用してLinuxサービスを管理する方法

  3. Linuxで実行中のサービスを確認する

  1. systemctlを使用して複数のサービスインスタンスを管理する

  2. 初心者向けのLinuxサービスコマンドチュートリアル(例付き)

  3. Linux での systemctl コマンドの例

  1. Linuxでncatを使用してポートリダイレクトを設定する

  2. Systemctlコマンドを使用してSystemdサービスを管理する方法

  3. LinuxでSystemdサービスを一覧表示する方法