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