ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

Fedoraでsystemdを使用してサービスを管理する方法

編集済み 4 数か月前 によって ExtremeHow 編集チーム

フェドラsystemdサービス管理コマンドラインターミナルソフトウェアシステム管理設定コンピュータ

Fedoraでsystemdを使用してサービスを管理する方法

翻訳が更新されました 4 数か月前

現代のLinuxディストリビューションでサービスを管理することは、システム管理者やマシン上で動作しているサービスを制御する必要があるユーザーにとって重要です。人気のあるLinuxディストリビューションであるFedoraは、systemdをシステムおよびサービスマネージャとして使用しています。この記事では、Fedoraでsystemdを使用してサービスを効果的に管理する方法について説明します。サービスの開始、停止、有効化、無効化、状態の確認、カスタムサービスユニットの作成などのトピックを取り上げます。FedoraまたはLinuxシステムに初めて触れる方でも、おさらいが必要な経験豊富なユーザーでも、この包括的なガイドはすべての人に役立ちます。

systemdの概要

systemdは、従来のUnix System Vsysv)およびBSD initを置き換えるように設計されたシステムおよびサービスマネージャを提供するツールです。デーモンのオンデマンド起動、サービスの監視、スナップショットサポートなどを提供します。Nicerはサービスに依存しています。systemdのコアはsystemctlコマンドを介して管理されており、systemdシステムおよびサービスマネージャの状態の確認と制御を担当します。

systemdのコンポーネント

systemdを実際に使用する前に、その主要なコンポーネントを理解しておくと役立ちます:

サービスユニットの理解

サービスユニットは、systemdで最も一般的なユニットタイプです。これらのユニットには、サービスが何であるか、どのように開始または停止されるべきか、それが依存しているもの、およびその他の特定の動作が定義されています。

サービスユニットファイルは通常/etc/systemd/systemまたは/usr/lib/systemd/systemにあり、以下の構文を持ちます:

[Unit]
Description=サンプルサービス
[Service]
ExecStart=/usr/bin/my-service
ExecStop=/usr/bin/my-service-stop
Restart=on-failure
[Install]
WantedBy=multi-user.target

各サービスファイルには通常、次のセクションが含まれます:

systemctlを使用してサービスを管理する

systemctlコマンドはsystemdを監視および制御するために使用されます。以下は一般的なタスクとsystemctlを使用してそれを行う方法です:

サービスの状態を確認する

サービスの状態を確認するには、次を使用します:

systemctl status my-service.service

このコマンドは、サービスの状態、最近のログなどに関する情報を提供します。

サービスの開始

サービスを開始するには、次を使用します:

systemctl start my-service.service

サービスを手動で開始することは、起動時に自動的に開始することを意味しません。

サービスの停止

サービスを停止するには、次のコマンドを使用します:

systemctl stop my-service.service

このコマンドは、手動で再起動されるか、または再起動されるまでサービスを停止します。

サービスの再起動

サービスを再起動するには、次を使用します:

systemctl restart my-service.service

この操作は、サービス(実行中の場合)を停止してから再度開始します。

サービスの有効化と無効化

システムブート時にサービスを自動的に開始するには、それを有効にします:

systemctl enable my-service.service

逆に、サービスを無効にして自動的に開始されないようにするには、次を使用します:

systemctl disable my-service.service

サービスを有効にすると、サービスのユニットファイルからシステムのブートアップ構成へのシンボリックリンクが作成されます。

デーモンのリロード

systemdツリー内のユニットファイルや設定を変更した場合は、systemdのリロードが必要です:

systemctl daemon-reload

このコマンドは、systemdに新しいまたは変更されたユニットファイルをスキャンするよう通知します。

カスタムサービスユニットを作成する

カスタムサービスを作成すると、自分のアプリケーションを管理されたサービスとして実行できます。次は、それを作成するための簡単な手順です:

ステップ1: ユニットファイルの作成

テキストエディタを開き、/etc/systemd/system/ディレクトリに新しいサービスユニットファイルを作成します:

sudo nano /etc/systemd/system/my-custom-service.service

必要なサービス定義で埋めます:

[Unit]
Description=カスタムサービス例
[Service]
ExecStart=/usr/bin/custom-script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

ステップ2: 権限の設定

ExecStartで呼び出されるスクリプトやプログラムが適切な権限を持っていることを確認します:

chmod +x /usr/bin/custom-script.sh

ステップ3: systemdのリロード

新しいユニットファイルを作成したら、systemdをリロードします:

systemctl daemon-reload

ステップ4: サービスの開始と有効化

カスタムサービスを開始して有効にします:

systemctl start my-custom-service.service
systemctl enable my-custom-service.service

カスタムサービスは、他のシステムサービスと同じように管理されるようになりました。

systemdターゲットを使用する

ターゲットエンドポイントは、従来のinitシステムでのランレベルの概念を抽象化する設定です。サービスや他のユニット間の依存関係を管理し、複数のサービスやユニットをグループ化するための方法を提供します。

利用可能なターゲットの一覧表示

システム上の利用可能なターゲットを確認するには、次を使用します:

systemctl list-units --type=target

ランレベルの変更

ターゲットまたはランレベルを変更するには、次を使用します:

systemctl isolate multi-user.target

このコマンドは、マルチユーザー・モードへのランレベルの変更に相当します。

journalctlでログを理解する

systemdにはjournalctlという統合されたシステムジャーナルツールが付属しています。このログ管理ツールは、systemdによって管理されるすべてのサービスのログを中央リポジトリに統合します。

ログの表示

特定のサービスのログを表示するには、次を使用します:

journalctl -u my-service.service

リアルタイムでのログ記録

ログが生成されるリアルタイムで監視する場合は、次のフラグを使用します:

journalctl -u my-service.service -f

一般的な問題のトラブルシューティング

サービスの管理がスムーズに行えない場合があります。トラブルシューティングを知っていると非常に役立ちます:

結論

サービス管理の効率は、Fedoraやその他のsystemdを使用するLinuxディストリビューションでのシステム管理において基本的です。このガイドでは、servicectlを使用してサービスのさまざまな側面を管理する方法を紹介しました。サービスの起動や停止といった基本的なタスクの実行から、カスタムサービスユニットの作成やjournalctlを使用したログの処理に至るまでのスキルを身に付けることで、システムがスムーズかつ効率的に動作することを保証し、タスクを自動化し、システムのサービスを効果的に管理できます。

Linuxの世界では、システム上で行うアクションにはroot権限が必要になる場合があることを忘れないでください。適切な権限を持ち、重要なファイルをバックアップし、重要なシステム設定に変更を加える前に常にバックアップを取ることを確認してください。systemdおよびそれが提供するツールを理解することは、Linuxサービス管理において非常に価値があります。

記事の内容に誤りがある場合, あなたは


コメント