/etc/profile.d および /etc/init.d の下のカスタム スクリプト - rhel6 および rhel7

/etc/profile.d および /etc/init.d の下のカスタム スクリプト - rhel6 および rhel7

ブート時にスクリプトを開始する必要があります。/etc/init.d および /etc/profile.d の下のスクリプトはシステム起動時にソース化されると読みました。これらのディレクトリはどの程度異なりますか?

上記の 2 つの方法以外にも、@reboot /path/to script のようなエントリを使用してサービスを開始するように cron を構成することもできるようです。

システムの起動時にスクリプトを実行する正しい/効率的な方法を提案してください。

答え1

/etc/profile.dは、シェル セッションの環境 (設定PATHなど) をカスタマイズするベンダー固有の手段であり、通常はデーモンの起動とは関係ありません。デーモンの起動には が一切関与すべきではないと主張する人もいます。そうしないと、/etc/profile.dユーザーによるシェルのカスタマイズによってデーモンがロードに失敗したり、間違った環境設定 (タイムゾーン、ロケールなど) でロードされたりすることがなくなります。

/etc/init.dは、Linux で実装されている SystemV init システムの一部です (対照的に、Digital UNIX では の下に配置されています/sbin/init.d)。デーモンを起動する適切な init スクリプトを作成できます (これを適切に行う方法については、既存のスクリプトを調べてください)。これにより、RHEL6 と RHEL7 の両方との互換性が得られます。

cron@rebootジョブでデーモンを起動できますが、systemdRHEL7 では cron からの fire-and-forget よりも優れた管理機能が提供されます (デーモンがクラッシュするとどうなるか? 自動的に再起動する必要があるか? 複数のインスタンスが起動された場合、どの程度問題になるか? 問題になる場合、1 つのインスタンスのみを起動するにはどのようなロックが必要か)。

関連情報