systemctl コマンドを使用して Linux サービスを一覧表示する方法


Linux ユーザーまたは管理者は、システム上のサービスを管理する方法を知っておく必要があります。サービスはバックグラウンドで実行され、ネットワーク、印刷、ログなどの重要な機能を提供するプログラムです。

しかし、Linux 上でサービスを一覧表示、開始、停止、有効化、無効化、または再起動するにはどうすればよいでしょうか?答えは systemctlコマンドです。このコマンドは、Ubuntu や Debian などの Linux ディストリビューション用の最新のシステムおよびサービス マネージャーである systemdの一部です。

あなたが Linux初心者 で、systemctelを使用してこれらのサービスを管理したい場合は、以下の手順に従ってください。

systemctl を使用してすべてのサービスを一覧表示する

Linux システム上のすべてのサービスを一覧表示するには、ターミナルで次のコマンドを実行します。

sudo systemctl list-units –type service

これにより、UNITLOADACTIVESUB、および SUBの 5 つの列を含むテーブルが表示されます。 説明

UNIT列には、サービスの構成および定義ファイルであるサービス ユニット ファイルの名前が表示されます。このファイルには、サービスの内容とその管理方法に関する情報が含まれています。 説明列でサービスの簡単な説明を表示することもできます。

LOAD列には、サービス ユニット ファイルがメモリにロードされているかどうかが表示されます。 ACTIVE列には、サービスが実行中かどうかが表示されます。最後に、SUB列には、実行中、終了、失敗などのサービスのサブ状態が表示されます。

–typeサービスの代わりに -aまたは –allオプションを使用して、サービスだけでなくすべてのタイプのユニットを一覧表示することもできます。 .

systemctl を使用してアクティブなサービスを一覧表示する

システム上で現在アクティブ (実行中) のサービスのみを確認したい場合は、Linux ターミナルで次のコマンドを実行します。

sudo systemctl list-units –type service –state active

これにより、非アクティブ (停止) または障害が発生したサービスが除外されます。

systemctl を使用して非アクティブなサービスをリストする

同様に、システム上で現在非アクティブ (停止) になっているサービスのみを確認したい場合は、ターミナルで次のコマンドを実行します。.

sudo systemctl list-units –type service –state inactive

これにより、アクティブ (実行中) または失敗したサービスが除外されます。

systemctl を使用して失敗したサービスをリストする

システム上で開始または停止に失敗したサービスを確認したい場合は、ターミナルを開いて次のコマンドを実行します。

sudo systemctl list-units –type service –state failed

これにより、現在アクティブな (実行中の) サービスまたは非アクティブな (停止している) サービスが除外されます。

systemctl を使用して有効なサービスを一覧表示する

システムの起動時にどのサービスが自動的に開始されるように有効になっているかを確認するには、ターミナルで次のコマンドを実行します。

sudo systemctl list-unit-files –type service –state有効

これにより、UNIT FILESTATEの 2 つの列を含むテーブルが表示されます。 「UNIT FILE」列には、サービスユニットファイルの名前が表示されます。 STATE 列には、サービスが有効かどうかが表示されます。

systemctl を使用して無効なサービスを一覧表示する

システムでどのサービスが無効になっており、起動時に自動的に開始されないかを確認するには、Linux ターミナルを開いて次のコマンドを実行します。

sudo systemctl list-unit-files –type service –statedisabled

これにより、有効またはマスクされたサービスが除外されます。

systemctl を使用してサービスの詳細を表示する

システム上の特定のサービスに関する詳細を表示するには、ターミナルで次のコマンドを実行します。

sudo systemctl status <サービス名>

を、確認するサービス ユニット ファイルの名前に置き換えます。

これにより、説明、負荷状態、アクティブ状態、サブ状態、プロセス ID (PID)、メモリ使用量、CPU 使用量、最近のサービス ログなどの情報が表示されます。

ステータスの代わりに show サブコマンドを使用して、すべてのサービス プロパティを name=value形式で表示することもできます。

systemctl を使用してサービスを開始する

システム上で停止しているサービスを開始するには、Linux ターミナルで次のコマンドを実行します。

sudo systemctl start <サービス名>

を、開始するサービス ユニット ファイルの名前に置き換えます.

これにより、サービスがバックグラウンドで開始され、プロンプトに戻ります。 status サブコマンドを使用して、サービスが実行中であることを確認できます。

systemctl を使用してサービスを停止する

システム上で実行中のサービスを停止するには、ターミナルで次のコマンドを実行します。

sudo systemctl stop <サービス名>

を停止するサービス ユニット ファイルの名前に置き換えます

これにより、バックグラウンドでサービスが停止され、プロンプトに戻ります。 status サブコマンドを使用して、サービスが停止していることを確認できます。

systemctl を使用してサービスを再起動する

サービスの構成ファイルを編集して再読み込みし、変更を適用しますか?その場合は、後でサービスを再起動する必要があります。

システム上で実行中のサービスを再起動するには、ターミナルを開いて次のコマンドを実行します。

sudo systemctl restart <サービス名>

を、再起動するサービス ユニット ファイルの名前に置き換えます。

これにより、サービスがバックグラウンドで停止および開始され、プロンプトに戻ります。 status サブコマンドを使用して、サービスが実行中であることを確認できます。

systemctl を使用してサービスをリロードする

一部のサービスは、停止および開始を行わない構成の再読み込みをサポートしています。サービスをリロードすると、サービスを再起動せずに、それらのサービスの構成ファイルに小さな変更を加えることができます。これは再起動よりも速く、中断も少なくなります。

この機能をサポートするサービスをリロードするには、ターミナルで次のsystemctlコマンドを使用します。

sudo systemctl reload <サービス名>

を、リロードするサービス ユニット ファイルの名前に置き換えます。

これにより、サービスがバックグラウンドでリロードされ、プロンプトに戻ります。 status サブコマンドを使用して、サービスが実行中であることを確認できます。

systemctl を使用してサービスを有効にする

システムの起動時にサービスが自動的に開始されるようにするには、ターミナルで次のコマンドを実行します。

sudo systemctl Enable <サービス名>.

を有効にするサービス ユニット ファイルの名前に置き換えます。

これにより、サービス ユニット ファイルから /etc/systemd/systemの下の場所へのシンボリック リンクが作成され、起動時に systemd が起動するように指示されます。

–nowオプションを使用して、サービスの有効化と開始を同時に行うこともできます。例:

sudo systemctl enable –now <サービス名>

systemctl を使用してサービスを無効にする

システムの起動時にサービスが自動的に開始されないようにするには、Linux ターミナルで次のコマンドを実行します。

sudo systemctl disable <サービス名>

を、無効にするサービス ユニット ファイルの名前に置き換えます。

これにより、/etc/systemd/system からシンボリック リンクが削除され、起動時に systemd が起動しないように指示されます。

–nowオプションを使用して、サービスの無効化と停止を同時に行うこともできます。

sudo systemctl disable –now <サービス名>

systemctl を使用してマスクされたサービスを一覧表示する

サービスをマスクすると、そのユニット ファイルが /dev/nullにリンクされ、systemd によるロードや操作が防止されます。これにより、保護層がさらに追加されます。

どのサービスがマスクされており、システム上で手動または自動で開始または停止できないかを確認するには、Linux PC のターミナルで次のコマンドを実行します。

sudo systemctl list-unit-files –type service –state Masked

マスクされたサービスのリストがリストに表示されます (マスクされたSTATE列の下にリストされます)

systemctl を使用してサービスをマスクする

ターミナルで次のコマンドを実行して、システム上でサービスが開始、手動、または自動で開始されないようマスクします。

sudo systemctl マスク <サービス名>

をマスクするサービス ユニット ファイルの名前に置き換えます。

これにより、サービス ユニット ファイルから /dev/nullへのシンボリック リンクが作成され、systemd によるロードや操作が防止されます。.

systemctl を使用してサービスのマスクを解除する

以前マスクされていたサービスのマスクを解除できます。これにより、/dev/null へのシンボリック リンクが削除され、他の場所で使用およびロードできるようになります。

システム上で以前にマスクされていたサービスのマスクを解除するには、次のコマンドを実行します。

sudo systemctl unmask <サービス名>

を、マスクを解除するサービス ユニット ファイルの名前に置き換えます。

Linux PC の制御

Linux PC が systemd を使用してシステム サービスを管理している場合は、systemctlコマンドを使用してシステム サービスを管理できます。サービスを開始、停止、リロード、無効化、制御できるため、Linux PC をより詳細に制御できるようになります。

PC を管理するもう 1 つの方法は、特定のファイルへのアクセスを制限することです。 Linux PC で chmodコマンドを使用します アクセスを許可 (または禁止) できます。

お使いの Linux ディストリビューションが適切かどうかわかりませんか?代わりに もう一つのトップ Linux ディストリビューション を試してみるか、ポータブル Linux ディストリビューション を試してみてください。ポータブル ディストリビューションを使用すると、それらを簡単に切り替えることができます。

.

関連記事:


26.04.2023