システム管理者は、おそらく毎日多くのサービスを扱っています。
Linux 、サービスはさまざまな目的で使用されます。
マシンでSSHサーバーを起動するために使用することも、特定の時間または日にいくつかの操作を実行することもできます。
Debianベースのディストリビューションを使用しているかどうか。 RedHatのもの、クエリサービスは非常に似ています。
ただし、使用しているディストリビューション、より具体的には初期化システム(initまたはsystemd)を考えると、さまざまなコマンドを使用する必要がある場合があります。
このチュートリアルでは、次のことを学びます。システムマネージャを指定して、Linuxマシン上のすべてのサービスを一覧表示する方法。
目次
を決定する使用されているシステムマネージャー
ご存知かもしれませんが、最近のディストリビューションではSystemdシステムマネージャーが使用されています。
ただし、常にそうであるとは限りません。以前は、ほとんどのディストリビューションでSysVinitシステムマネージャーが使用されていました。
結果として、Linuxシステムでサービスを管理する方法は実際には2つあります。
サービスを一覧表示するコマンドを学習する前に、現在使用しているシステムマネージャーを知っておく必要があります。
現在のシステムマネージャーを確認するには、「」を使用するのが最も簡単な方法です。 pstree」コマンドを使用して、システムで実行された最初のプロセスを確認します。
「systemd」と表示されている場合は、明らかに現在systemdを使用していることを意味します。ただし、「 init」は、SysVinitを使用していることを意味します。
古いinitシステムをまだ使用しているUbuntu14.04では、「pstree」は次のようになります。
systemctlを使用したサービスの一覧表示
systemdシステムを使用している場合、Linuxでサービスを一覧表示する最も簡単な方法は、「systemctl」コマンドに続けて「list-units」を使用することです。結果をサービスのみに制限するために、「– type = service」オプションを指定できます。
デフォルトでは、このコマンドは、システムでアクティブなサービスまたは失敗したサービスのみを表示します。上のスクリーンショットでは、ほとんどのサービスがアクティブですが、logrotateサービス(赤で強調表示)は失敗としてマークされています。
すばらしい、Linuxサーバーでサービスを簡単に一覧表示する方法を学びました。
ただし、お気づきかもしれませんが、すべてのサービスにアクセスできませんでした。非アクティブなサービスはどうですか?起動時にsystemdによってロードされなかったサービスはどうですか?
すべてのサービスを一覧表示します。 list-unitsを使用するLinux
アクティブと非アクティブを意味するすべてのサービスを一覧表示するには、「systemctllist-units」コマンドに続けて「–all」オプションを使用する必要があります。
同様に、タイプフィルターを使用することによってのみ結果をサービスに制限できます。
ご覧のとおり、非アクティブなサービスもリストされています。これは、サービスを作成してリストで管理している場合に便利です。
この場合、ロードされたサービスのみがリストされます。起動時に、systemdはユニットファイルをロードし、システムで使用されないことが判明した場合、特定のサービスをロードしないことを選択する場合があります。
結果として、「ロードされた」には実際の違いがあります。 」および「インストール済み」サービス。 「インストール済み」サービスとは、ユニットファイルが対応するパスにあることを意味します。
州ごとのサービスの一覧表示
場合によっては、失敗したサービスのみに関心があることがあります。そのために、州を指定できます。 systemctlコマンドのオプションとして探しているもの。
ここで、「state」は次のいずれかの値になります:active、inactive、activateing、非アクティブ化、失敗、見つからない、または停止しています。
たとえば、「失敗した」サービスのみに関心がある場合は、次のコマンドを実行します
list-unit-filesを使用してすべてのサービスファイルを一覧表示する
最後に、「ロード済み」、「インストール済み」、「無効」、および「有効」のサービスファイルに関心がある場合は、別のコマンドがあります。それはかなり便利かもしれません。
使用可能なすべてのサービスファイルを一覧表示するには、「systemctl」コマンドに続けて「list-unit-files」を使用する必要があります。オプションで、「– type = service」オプションを使用してタイプを指定できます。
または、「grep」コマンドを使用して、サービスファイルを含む可能性のあるシステム上の特定のパスを検索することもできます。
おめでとうございます、あなたはどのようにできるかを学びましたシステムがsystemdを使用している場合はサービスを一覧表示します!
サービスを使用してサービスを一覧表示します
SystemV initシステムを使用している場合、Linuxでサービスを一覧表示する最も簡単な方法は、「 service」コマンドの後に「–status-all」オプションが続きます。これにより、システム上のサービスの完全なリストが表示されます。
ご覧のとおり、各サービスは括弧の下に記号が前に付いてリストされています。これらの記号は:
- +:はサービスを意味しますeは実行中です;
- –:サービスがまったく実行されていないことを意味します;
- ? :Ubuntuがサービスが実行されているかどうかを判断できなかったことを意味します。
では、なぜ一部のサービスは実行されているかどうかを判断できず、一部は実行できないのですか?
すべてはinitスクリプトの実装に帰着します。たとえば、udevスクリプトなどの一部のスクリプトでは、「status」コマンドが実装されていることを確認できます。
これは、たとえば「dns-clean」スクリプトには当てはまりません。これが、質問がある理由です。このサービスをクエリするときにマークを付けます。
フォルダ内のSysVinitサービスを一覧表示する
現在のサービスの一覧を一覧表示する別の方法は、上のすべてのスクリプトを含むフォルダで「ls」コマンドを使用することです。 Linuxシステム、つまり「/etc/init.d」。
結論
このチュートリアルでは、Linuxシステムでサービスを簡単に一覧表示する方法を学習しました。 systemdまたはSysVinitのどちらを使用しているか。
独自のサービスの作成に興味がある場合は、次のリソースを参照することをお勧めします。それを正しく達成するために本当に役立つかもしれません。
- initシステムの起動スクリプトを書く;
- systemdを使用して起動時にサービスを開始する;
Linuxシステム管理に興味がある場合は、このテーマに関する完全なセクションがWebサイトにあるので、必ずチェックしてください。
FlatIconのFreepikによって作成されたアイコン