ホームページ >運用・保守 >Linuxの運用と保守 >LinuxのSystemDを使用してシステムサービスを管理するにはどうすればよいですか?

LinuxのSystemDを使用してシステムサービスを管理するにはどうすればよいですか?

James Robert Taylor
James Robert Taylorオリジナル
2025-03-11 17:34:03761ブラウズ

LinuxのSystemDを使用したシステムサービスの管理

SystemDは、ほとんどの最新のLinux分布で使用されるINITシステムです。システムサービスの開始、停止、および全体的なライフサイクルを管理します。 Sysvinitのような古いINITシステムとは異なり、SystemDは、より洗練された堅牢なアプローチを提供し、依存関係管理や並列サービススタートアップなどの機能を活用しています。 SystemDを使用したサービスの管理には、主に Systemctl を使用することが含まれます。 SystemDユニット(サービス、ターゲット、その他のシステムコンポーネントを説明するファイル)の構造を理解することは、効果的な管理には不可欠です。これらのユニットは通常、/etc/systemd/system/およびその他の関連ディレクトリにあります。ユニット自体は通常、単純な構成言語で記述されているため、比較的理解して変更しやすくなります。最後に、SystemDは堅牢なロギングメカニズムを提供し、古いINITシステムよりもトラブルシューティングをはるかに簡単にします。

SystemDと対話するためのプライマリコマンドは Systemctl です。サービスを管理するためのいくつかの一般的なコマンドは次のとおりです。
  • サービスの開始: 。たとえば、SSHサービスを開始するには、<code> systemctl start ssh を使用します。このコマンドは、まだ実行されていない場合にサービスを開始します。
  • サービスの停止: 。このコマンドは、指定されたサービスを優雅に停止します。</codectl> </li> <li> <strong>サービスの再起動:</strong> <code> systemctl restart&lt; service_name&gt; 。このコマンドは停止し、サービスを開始します。構成の変更を適用したり、軽微な問題から回復するのに役立ちます。
  • サービスの有効化: 。このコマンドにより、サービスが起動時に自動的に開始されるようにします。 SystemDは、サービスユニットを適切なRunlevel Directoriesに配置するためのシンボリックリンクを作成します。このコマンドは、シンボリックリンクを削除し、サービスが起動時に自動的に起動しないようにします。このコマンドは、PID(プロセスID)、アクティブ状態、および最近のログを含む、サービスの現在のステータスを表示します。サービスの健康に関する詳細な情報を提供します。</codectl> </li> <li> <strong>すべてのアクティブなサービスをリストします:</strong> <code> systemctl list-units -Type = service 。このコマンドは、現在実行中のすべてのサービスをリストします。 - state = running を実行して実行中のサービスのみをフィルタリングすることができます。

Systemdサービスの障害と表示の表示のトラブルシューティング

いくつかのツールがトラブルシューティングに役立ちます。前述のことに、このコマンドは非常に重要です。起動時またはランタイム中に発生した場合のエラーメッセージなど、サービスの状態に関する情報を提供します。 「失敗した」または「非アクティブ(死んだ)」ステータスとその後のエラーメッセージに細心の注意を払ってください。

  • journalctl: journalctl コマンドは、SystemDログを表示するための主要なツールです。サービス名、時間、およびその他の基準に基づいてログをフィルタリングできます。例:

    • journalctl -u&lt; service_name&gt; :指定されたサービス専用のログを表示します。 -xe :サービスの最新のエラーメッセージを表示します。
    • journalctl -u&lt; service_name&gt; -f :ログ出力をリアルタイムで追跡します。トラブルシューティング中にサービスの動作を観察するのに役立ちます。
  • サービス構成ファイルのチェック: Service Unitファイル(通常は/etc/systemd/にあるサービスユニットファイルを確認します。カスタムSystemDサービスには、サービスを説明するユニットファイルの作成が含まれます。これらのファイルには通常、 .service 拡張子があります。サービスファイルの基本的な例は次のとおりです。
     <code class="ini"> [unit] description = my custom service after = network.target.TARGET.TYPE = MYUSER GROUP = MYGROUP execStart =/path/to/my/script.sh restArt = lateSec = 5 [インストール] wantseby = multi-user.target </code> 
      [ung] セクション:その説明と依存関係を含むサービスに関するメタデータが含まれています。グループを実行し、ポリシーを再起動します。
  • [インストール] セクション:このファイルを作成した後(
  • グループを指定します。

    1. reload systemd: systemctl daemon-reload
    2. サービスを有効にする: system enable mycustomservice
    3. サービスステータスを確認してください: systemctl status mycustomservice

    to/my/script.shsh 、 mygroursユーザーとグループを適切に設定することは、セキュリティに不可欠です。 <code> restart = altional および restartsec = 5 オプションがクラッシュした場合に自動的に再起動することを確認し、再起動を試みる前に5秒待ってください。生産環境に展開する前に、常にカスタムサービスを徹底的にテストしてください。

    以上がLinuxのSystemDを使用してシステムサービスを管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。