systemctl コマンドを使用して Linux で障害が発生したユニットを表示する方法
Linux では、次のようなさまざまな理由でユニットが失敗することがよくありました。
- 依存関係が欠落している
- 間違った構成
- 破損したファイル
- システムリソースの不足
- 必要な権限が不足している
この問題を解決するには、障害が発生したユニットをリストして特定する必要があります。
Linux で障害が発生したユニットをリストするには、次のコマンドを使用します。 システム制御 、 とともに リスト単位 指示。次に、ユニットの状態を次のように設定します。 失敗した を使用して、 -州 オプション。
systemctl リストユニット - 州 =失敗しました
出力は次のことを示しています 私のサービス ユニットはロードされましたが失敗しました。ユニットの起動に失敗したかどうかを確認する別の方法として、次のコマンドを使用します。
systemctl が失敗しました [ ユニット名 】
または、起動後にログを使用してユニットのステータスをディレクトリで確認することもできます。
システム制御ステータス [ ユニット名 】
の グリップ このコマンドを systemctl とともに使用して、障害が発生したユニットをリストすることもできます。
systemctl リストユニット | グリップ -私 失敗した
Linux で障害が発生したユニットを修復する方法
Linux 上で障害が発生したすべてのユニットを修復するには、 リセット失敗 コマンドは systemctl とともに使用されます。
須藤 systemctl のリセットに失敗しましたLinux で特定の障害が発生したユニットを修正するには、サービスまたはユニットの名前をコマンドの後に指定します。 リセット失敗 指示。
須藤 systemctl のリセットに失敗しました [ ユニット名 】上記のコマンドでは出力は表示されません。の 状態 ユニット名のオプションを使用すると、サービスが実行されているかどうかがわかります。
システム制御ステータス [ ユニット名 】
サービスが障害状態ではなくなっていることがわかります。しかし、ロードされていて非アクティブな状態です。ユニットをアクティブにするには、ユニットを起動する必要があります。そのためには、 須藤 システムctlの開始 ユニット名と一緒に。起動後、本体の状態を確認してください。
サービス障害はさまざまな要素によって引き起こされることにも注意してください。ユニットの起動異常やタイムアウトが発生した場合、リセット失敗によりユニットがリセットされ修復されます。必要な依存関係が欠落している場合は、依存関係をインストールするだけでユニットが修正されます。さらに、構成ファイルに何らかの問題がある場合、手動で対処する必要があるため、reset-failed では修正されません。
障害が発生したユニットのトラブルシューティング方法
サービスがまだ障害状態を解消できない場合は、さらにトラブルシューティングを行う必要があります。問題を診断するには、ユニットのログ メッセージを表示することをお勧めします。
ユニットのログを表示するために、systemd には、と呼ばれる組み込みユーティリティが用意されています。 ジャーナルctl 。特定のユニットのログを表示するには、以下のコマンドを使用します。
ジャーナルctl -で [ ユニット名 】 -車
上記のコマンドでは、 -バツ フラグは完全なカタログを表示するために使用されます。 -それは 最後のエントリを表示するために使用されます。
したがって、障害が発生したユニットの原因をさらに調査するために、ログ ファイル内のエラーを確認できます。
結論
Linux では、さまざまな理由でユニットに障害が発生します。一般的な理由としては、構成の誤りやサービスの異常な起動などが挙げられます。ユニットの障害をデバッグするには、まず次のコマンドを使用してそれらをリストする必要があります。 systemctl lits-units 失敗した状態について言及することによって。さらにトラブルシューティングを行うために、ステータスとログ メッセージを確認することもできます。サービスの失敗ステータスを修正するには、 systemctl のリセットに失敗しました 一時的な異常が発生した場合に、ユニットの障害状態をリセットするコマンド。ただし、ユニットの障害の正確な原因を知るには、ユニットのログ メッセージから有益な情報が得られることがあります。