CentOS 7での起動中にfsckを実行するスクリプトの種類を確認する必要がありますか?
すべてのシナリオが/etc/rc.dディレクトリにあることは知っています。
しかし、私にはわかりません。このスクリプトはどこにありますか。
承認された回答:
すべてのシナリオが
/etc/rc.d
にあることを知っています ディレクトリ。
あなたが知っていることは間違っています。
CentOS7へようこそ。世界は変わりました。特に、Red Hat EnterpriseLinux7のベースが変更されました。 systemdLinuxオペレーティングシステムを使用しています。 Linuxに関して受け取った多くの知恵は、そのようなシステムには当てはまりません。
fsck
どのスクリプトでも実行されません systemdLinuxオペレーティングシステム。
systemdのネイティブフォーマットはunit 、特にサービスユニット またはマウントユニット 。 systemdの適切なサービス管理は、(システム全体の).service
が存在する9つのディレクトリの1つから読み取るものに関してのみ機能します。 および.mount
ファイルは生きることができます。 /etc/systemd/system
、/run/systemd/system
、/usr/local/lib/systemd/system
、および/usr/lib/systemd/system
それらのディレクトリのうちの4つです。
/etc/fstab
データベースは、systemd-fstab-generator
という名前のプログラムによってマウントユニットに変換されます。 。このプログラムは、/usr/lib/systemd/system-generators/
にリストされています。 ディレクトリであるため、ブートストラッププロセスの早い段階で、起動するたびにsystemdによって自動的に実行されます。また、systemdが後で構成を再ロードするように指示されるたびに実行されます。
このプログラムはジェネレーターです 、その仕事がオンザフライでユニットファイルを作成することである補助ユーティリティの一種であり、これらの9つのディレクトリ(ジェネレータによってのみ使用されることを目的としています)のうち3つが配置されているtmpfsにあります。 systemd-fstab-generator
.mount
を生成します ボリュームをマウントするユニット。これらは順番に.service
を参照します fsck
を実行するユニット 。
それらのfsck
サービスユニット自体はファイルシステム内にファイルとして存在せず(tmpfs内でも)、ジェネレーターの製品ではありません。それらはインスタンス化されます テンプレートからsystemdで [email protected]
という名前のサービスユニットファイル 、サービスユニットインスタンス名としてデバイス名を使用します。 Requires=
が原因で、インスタンス化が発生します およびAfter=
[email protected]device.service
生成された.mount
から ユニット。
このインスタンス化されたテンプレートは、systemd-fsck
という名前のプログラムを実行するサービスです。 、進行状況情報を表示するためのクライアントサーバー接続を設定し、次にfsck
を実行します。 。 systemd-fsck
はコンパイルされたCプログラムであり、解釈されたスクリプトではありません。
さらに読む
- 「新機能:システムとサービス」。 Red Hat EnterpriseLinux7リリースノート 。 RedHat。
- Stephen Wadeley(2014)。 「8。 systemdを使用したサービスの管理」RedHatEnterpriseLinux7システム管理者ガイド 。 RedHat。
- systemd-fstab-generator 。 systemdのマニュアルページ。 Freedesktop.org。
- [メール保護] 。 systemdのマニュアルページ。 Freedesktop.org。
- systemd.mount 。 systemdのマニュアルページ。 Freedesktop.org。
- https://unix.stackexchange.com/a/204075/5132
- https://unix.stackexchange.com/a/196014/5132