systemctl: Linux を使いこなすための 12 個のコマンド 🚀
systemctl コマンドには、見落とされがちな機能がいくつかあります。 Linux では、サービスを開始および停止するだけでなく、インストールされているサービスを一覧表示し、そのステータスを確認することもできます。簡単にレビューしてみましょう! 🚀
Systemctl コマンドとは何ですか?
systemctl コマンドは、systemd init システムの中央管理ツールであり、主にサービスを開始および停止するために使用されるツールとして知られています。しかし、彼の マニュアルページ 1600行以上あります。 📖
systemctl は単なるサービスランチャーではなく管理ツールであるため、これを使用してシステムと systemd サービスに関する有用な情報にアクセスできます。 💻
ほとんどの Linux ディストリビューションは systemd を採用していますが、従来の SystemV init システムを維持することを選択したものもあります。ディストリビューションがどれを使用しているかわからない場合は、簡単に調べることができます。 stat コマンドを使用して init ファイルを確認します。
統計 /sbin/init

/sbin/init 実行可能ファイルは、SystemV ベースのディストリビューションで最初に起動されるプロセスです。 systemd ベースのディストリビューションでは、その名前のシンボリック リンクは systemd を指します。
出力の最初の行を見ると、この Ubuntu テスト マシンでは、/sbin/init がファイル /lib/systemd/systemd へのシンボリック リンクであることが分かります。明らかに、この Linux インストールでは systemd が使用されています。 SystemV ベースのディストリビューションの場合、この行には「File: /sbin/init」のみが含まれます。
systemctl によるサービスの照会
サービスはユニット ファイルで定義され、systemctl オプション全体に「ユニット」という単語が散在しています。たとえば、list-units コマンドで –type オプションを使用してサービスのリストを取得できます。
システムctl リスト-units --type=サービス

出力は less ファイル ビューアーに表示されるため、移動したり / キーを使用して検索したりできます。
- ユニット: ユニットファイルの名前。
- 運ぶ: サービス ユニット ファイルが構文エラーなしでメモリに読み込まれた場合、この列には「loaded」が含まれます。これはサービスがアクティブであることを意味するものではありません。
- 資産: サービスがアクティブかどうかの概要。アクティブなサービスが実行されていない可能性があります。
- サブ: サービスが実行中かどうかのより詳細な表示。たとえば、アクティブなサービスがタイマーにスケジュールされ、最後の実行が終了している可能性があります。
- 説明: サービスを識別または説明するためのテキスト行。
表示にはアクティブなサービスのみが含まれます。すべてのサービスを表示するには、–all オプションを含める必要があります。
システムctl リスト-ユニット --all --type=サービス

すべてを表示するのが大変な場合は、--state オプションを使用して出力をフィルタリングできます。
システムctl リスト-units --type=サービス --state=実行中

状態オプションは、実行中、停止、有効、無効、失敗を受け入れます。
失敗したサービスに焦点を当てるには、–failed オプションを使用します。
システムctl リスト-units --失敗

このコンピューターには故障したドライブはありません。
失敗したサービスが見つかった場合は、list-dependencies オプションを使用して、満たされていない依存関係を確認します。
システムctl リスト-dependencies sshd.service

依存関係には、そのステータスを表す色分けされた円があります。可能性があります:
- ホワイトサークル: 非アクティブまたはメンテナンス中
- グリーンドット: 資産。
- ホワイトポイント: 非アクティブ化します。
- レッドドット: 失敗またはエラーです。
単一のサービスが有効になっているかどうかを確認するには、is-enabled コマンドを使用して、サービスのユニット ファイルの名前を指定します。
システムctl es-htg-example.service を有効にしました

systemctl によるサービス制御
systemctl を使用してサービスを管理するのは非常に簡単で、これまで見てきたコマンドの形式に従います。最大の違いは、サービス状態を変更するには sudo を使用する必要があることです。これまではサービスの状況のみを報告していたため、そのようなことはしていませんでした。
サービスを開始するには、start コマンドに続けてサービス名を指定します。
汗 システムctl 始める htg-例。サービス

すべてがうまくいけば、コマンド プロンプトに自動的に戻ります。確実に確認したい場合は、status コマンドで確認できます。
汗 システムctl 状態 htg-例。サービス

サービスを停止するのは、開始するのと同じくらい簡単です。
汗 システムctl 停止 htg-例。サービス

サービスを停止してから開始するという 2 段階のプロセスを実行せずに、サービスを再起動できます。彼 再起動コマンド すべてあなたに代わって行います。
汗 システムctl 再起動 htg-例。サービス

起動時にサービスを開始する場合は、そのサービスを有効にする必要があります。
汗 システムctl 有効にする htg-例。サービス

これは起動時にサービスを開始するようにマークするだけで、すぐに開始するわけではないことに注意してください。それがご希望であれば、--now オプションを追加しました。
汗 システムctl 有効にする - 今 htg-例。サービス

起動時にサービスを開始する必要がなくなった場合は、無効にします。
汗 システムctl 無効にする htg-例。サービス

systemd の別の部分である journalctl コマンドを使用して、サービスに関連するエントリを検索できます。 -u (ユニット) オプションを使用すると、関心のあるサービスを指定できます。 -S (以降) オプションを使用すると、指定した時間以降に発生したエントリを表示できます。
ジャーナルctl -S "08:00:00" -または htg-例。サービス

あなたを助けるツール 操作に関する情報を取得する Linux ディストリビューションの内部は、日常的な管理と問題のトラブルシューティングおよび診断の両方にとって非常に貴重になります。 systemctl コマンドは単一のツールではありません。専門的な工具箱のようなもので、使いこなす価値があります。 🔧🛠️