systemctl コマンドを使用して Linux でサービスを開始、停止、再起動する方法

システム サービスは、Linux システムの機能において重要な役割を果たし、バックグラウンドでさまざまなタスクやプロセスを処理します。 systemctl> は、ユーザーがこれらのサービスを効果的に管理できるようにする強力なコマンドライン ツールです。この記事では、使い方の基本について説明します。 systemctl> Linux 環境でサービスの開始、停止、再起動、有効化、無効化、ステータスの表示を行います。

systemctlとは何ですか?

サービス管理に入る前に、基本を理解することが重要です systemctl> 。このコマンドは、最新の Linux ディストリビューションの中心コンポーネントである systemd システムとサービス マネージャーを制御するために使用されます。

systemctl [command] [unit] 

ここ、

  • command> : 実行するアクション (開始、停止、再起動、有効化、無効化など)。
  • unit> : 影響を受けるサービスまたはユニット。

Systemctl がコントローラーであるか、 Systemdのユーティリティ (バックグラウンドで実行される一連のプログラムを備えた init システム)、管理サービスの補助機能を使用すると、システムを root モードで実行していない場合、これらのコマンドは root モードで実行され、root のパスワードが要求されます。

サービスとは何ですか?

コンピューティングにおけるサービスは、ユーザーの介入なしに特定のタスクや機能を実行するバックグラウンド プロセスです。サービスは多くの場合、システムの起動中に自動的に開始され、Web サービス、ファイル共有、システム監視などの機能を提供するために継続的に実行されます。これらはオペレーティング システムによって管理され、必要に応じて開始、停止、または再起動できます。サービスは、重要な操作を一貫して利用できるようにするのに役立ちます。例としては、次のような Web サーバーが挙げられます。 アパッチ、 データベースサーバーのような MySQL、 そして システムログサービス。

デーモンとは何ですか?

デーモンは、Linux または Unix システム上で継続的に実行されるバックグラウンド プロセスです。ユーザーが直接操作することなくタスクを実行し、多くの場合、起動時に自動的に開始されます。一般的な例には、Web サーバー、データベース サーバー、システム監視ツールなどがあります。デーモンは通常、次のように d で終わる名前を持ちます。 httpd> または sshd> 。これらは、システム機能とサービスを効率的に管理するのに役立ちます。

初期化システムとは何ですか?

init システムは、Linux システムの起動時に実行される最初のプロセスであり、システムの初期化を担当します。システムのサービスとプロセスを管理し、それらの開始、停止、再起動を処理します。一般的な init システムには、SysVinit、Upstart、systemd などがあります。 init システムは、必要なすべてのサービスが正しく実行されていることを確認し、サービス間の依存関係を管理します。システムの動作全体を通じてシステム プロセスを監視および管理するために、バックグラウンドで実行され続けます。

systemd のユニット

systemd では、ユニットは systemd が管理および制御する基本オブジェクトです。これらは、サービス、タイマー、デバイス、マウント ポイントなどのシステム リソースを表します。各ユニットは、次のような特定のサフィックスが付いた構成ファイルによって定義されます。 .service> サービスまたは .timer> タイマー用。 systemctl コマンドを使用して、ユニットを開始、停止、有効化、または無効化できます。これらは、システムがどのように起動し、さまざまなプロセスやリソースを管理するかを定義するために不可欠です。

systemd の .service ユニット

システムド .service> ユニットは、Linux システム上のサービスを管理するために使用される構成ファイルです。これらは、サービスをいつどのように開始、停止、再起動するかを定義します。それぞれ .service> ファイルには、サービスの名前、説明、実行するコマンドなどの詳細が含まれています。これらのファイルは通常、次の場所にあります。 /etc/systemd/system> または /lib/systemd/system> 。それらを管理するには、次のようなコマンドが必要です systemctl start> systemctl stop> 、 そして systemctl enable>

システム内のすべての systemd ユニットを見つけるにはどうすればよいですか?

利用可能なシステムユニットを一覧表示するか、Linux ですべてのサービスを一覧表示するには、次のコマンドを使用します。

systemctl list-unit-files --type service -all 

Linux でシステム サービスを開始する方法

構文:

sudo systemctl start service.service 

start コマンドは、コマンド ラインで指定された 1 つ以上のユニットを開始 (アクティブ化) するために使用されます。

例:

sudo systemctl start mariadb 
システムctlの開始

コマンド開始

Linux でシステムサービスを停止する方法

構文:

sudo systemctl stop service.service 

stop コマンドは、サービスを停止するか、コマンド ラインで指定された 1 つ以上のユニットを (非アクティブ化) します。

例:

sudo systemctl stop mariadb 
systemctl 停止

コマンドの停止とステータス

Linuxでシステムサービスのステータスを表示する方法

構文:

sudo systemctl status service.service 

コマンドステータスはサービスの状態を確認するために使用されます。 1 つ以上のユニットに関する簡潔な実行時ステータス情報を表示し、その後にジャーナルからの最新のログ データを表示します。単位が指定されていない場合は、システムのステータスを表示します。

例:

sudo systemctl status mariadb 
システム制御ステータス

コマンドステータス

Linux でシステム サービスを再起動する方法

構文:

sudo systemctl restart service.service 

restartコマンドは実行中のサービスを再起動します。コマンドラインで指定した 1 つ以上のユニットを停止してから起動します。ユニットがまだ実行されていない場合は、ユニットが開始されます。

例:

sudo systemctl restart mariadb 
systemctl の再起動

コマンド再起動

Linux でシステム サービスを有効にする方法

構文:

sudo systemctl enable name_service.service 

Enable コマンドは、初期化が 1 つ以上のユニットまたはユニット インスタンスで構成されている場合にサービスを実行するために機能します。これにより、次のセットが作成されます シンボリックリンク 、指定されたユニット ファイルの [Install] セクションでエンコードされているもの。変更がすぐに反映されるようにするために、システム マネージャーの設定が (daemon-reload と同等の方法で) リロードされます。

sudo systemctl enable mariadb 

systemctl を有効にする

コマンド有効化

コマンドステータス

Linux でシステムサービスを無効にする方法

構文:

sudo systemctl disable name_service.service 

disable コマンドは、1 つ以上のユニットの初期化以降のサービスを取り消すために機能します。これにより、指定されたユニットをバックアップするユニット ファイルへのすべてのシンボリック リンクがユニット構成ディレクトリから削除されるため、有効化またはリンクによって行われた変更はすべて元に戻されます。

例:

sudo systemctl disable mariadb 

systemctl を無効にする

コマンド無効化

コマンドステータス

systemctl を使用してシステムをシャットダウンまたは再起動します。

システムを再起動します。 指示する systemd> システム全体を再起動します。すべてのサービスが停止され、システムは再起動する前に完全なシャットダウン プロセスを経ます。

sudo systemctl reboot 

システムをシャットダウンします。 systemd にマシンの電源をオフにするように指示します。すべてのサービスとプロセスが停止され、システムの電源が安全にオフになります。

sudo systemctl shutdown 

ジャーナルctl

journalctl> Linux システムで使用されるコマンドです からのログをクエリして表示するには、 systemd> ジャーナルは、ログ データを収集して保存するシステム サービスです。簡単な使い方ガイドはこちら journalctl> :

journalctl -n 10> systemd ジャーナルの最後の 10 エントリ (行) を表示するために使用されます。コマンドの各部分の動作の内訳は次のとおりです。

  • journalctl> : を呼び出します。 journalctl> このコマンドは、systemd ジャーナルのログをクエリおよび表示するために使用されます。
  • -n 10> : 表示する行数を指定します。この場合、 -n 10> 指示する journalctl> ジャーナルの最後の 10 件のエントリを表示します。
journalctl -n 10 

systemd を使用してサービスを保護することは、潜在的な脆弱性や不正アクセスからシステムを保護するために不可欠な方法です。これを実現する方法についての簡略ガイドは次のとおりです。

1. サービスユニットファイルを理解する

  • サービス構成 : systemd の各サービスはユニット ファイルによって管理され、通常は次の場所にあります。 /etc/systemd/system/> 。これらのファイルは、サービスの起動動作、リソース制限、セキュリティ設定などのサービスの動作方法を定義します。

2. サービス権限を制限する

  • ユーザーとグループの権限 : サービスを実行するユーザーとグループを指定します。セキュリティ侵害の影響を最小限に抑えるために、可能な限り root ユーザーの使用を避けてください。

3. systemd のセキュリティ機能を利用する

  • プライベートテンポ : プライベートを有効にする /tmp> そして /var/tmp> 異なるサービス間の情報漏洩を防ぐために、サービスのディレクトリを作成します。
  • ProtectSystem と ProtectHome : これらのオプションを設定して、システム ディレクトリとユーザー ホーム ディレクトリへのアクセスをそれぞれ制限し、システムのセキュリティを強化します。
  • ReadOnlyPath と ReadWritePath : サービスが読み取りまたは書き込みできるディレクトリを指定します。書き込みアクセスを制限すると、重要なファイルに対する意図しない変更を防ぐことができます。

4. リソース使用量を制限する

  • CPUとメモリを制限する : 使用 CPUQuota> そして MemoryLimit> サービスの CPU とメモリの使用量を制限し、リソース枯渇攻撃を防ぐオプション。

5. ネットワーク制御を有効にする

  • ネットワークアクセスを制限する : 利用する RestrictAddressFamilies> IPAddressAllow> 、 そして IPAddressDeny> サービスのネットワーク アクセスを制御し、潜在的な脅威への露出を制限するオプション。

6. ファイルシステムの権限を設定する

  • ファイルシステムのアクセス許可 : サービスのファイルとディレクトリに適切な権限があることを確認してください ( chmod> ) と所有権 ( chown> ) 不正アクセスを防止します。

7. 定期的に更新して監視する

  • システムを常に最新の状態に保つ : システムおよびサービス ソフトウェアを定期的に更新して、セキュリティの脆弱性にパッチを適用し、セキュリティ対策の有効性を維持します。
  • 監視ログ : systemd ジャーナル ログを監視する ( journalctl> ) 不審なアクティビティやセキュリティ関連のイベントを監視し、必要に応じて適切な措置を講じます。

結論

Linux でシステム サービスを管理するための重要なコマンド ライン ツールである systemctl について説明しました。systemctl は、サービスの開始、停止、再起動、有効化、無効化などのタスクで重要な役割を果たします。この記事では、systemctl の構文と主要なコマンドを網羅した、systemctl の包括的なガイドを提供しました。使用可能な systemd ユニットのリストから自動起動の有効化または無効化まで、各コマンドは効果的なサービス管理に貢献します。この記事では、一般的な質問にも対処し、サービスのステータスの確認、サービスの開始、停止、再起動、自動起動の有効化または無効化などのタスクに対する実用的な解決策を提供しました。全体として、systemctl コマンドを理解し、習得することが不可欠です。 Linux管理者 システムの安定性と最適なパフォーマンスを確保します。

Systemctl – FAQ

Linuxサービスとは何ですか?

Linux サービスは、ユーザーの操作とは独立して実行されるバックグラウンド プロセスまたはアプリケーションであり、特定の機能を提供したり、システム タスクを実行したりします。これは init システム (通常は systemd) によって管理され、次のようなコマンドを使用して開始、停止、管理できます。 systemctl>

Systemctl とサービスの違いは何ですか?

systemctl> は systemd サービスを管理するために使用されるコマンドライン ツールです。 service> へのシンボリックリンクです systemctl> 多くのシステムで、古い init スクリプトとの互換性を提供します。

Linux でサービスのステータスを確認するにはどうすればよいですか?

`を使用してください systemctl status `> サービスが実行中か、アクティブ (最近停止した) か、非アクティブ (一度も開始されていない) かを確認します。これにより、メモリ使用量やアクティブな接続などの重要な情報が明らかになります。

サービスを開始、停止、再起動するにはどうすればよいですか?

始動用 、 使用 :

sudo systemctl start 

停止用 、 使用 :

sudo systemctl stop 

再起動します 、 使用 :

sudo systemctl restart 

注記 : 忘れずに交換してください > 実際のサービス名を使用します。

起動時にサービスを自動的に開始するにはどうすればよいですか?

使用 sudo `> systemctl enable `> システムの起動時にサービスが自動的に開始されるように設定します。

自動起動を無効にするには、` を使用します sudo systemctl disable `>