yoctoベースのディストリビューションの初期化システムをSysV initからsystemdに切り替えています。いくつかの古いSysV init bashスクリプトを見て、そのスクリプトを完全に削除できないことに気づきました。場合によっては、サービスの実行可能ファイルETCを呼び出す前に操作を実行する必要があります(例:u-boot環境変数の値を読む)。 )。また、サービスの実行可能ファイルを同じ環境で実行する必要があるため(つまり、u-boot変数の値がパラメータとして渡される)、複数のステップに分割することはできません(一部をExecStartPreに移動します)。だから私はこれらの手順を実行し、exec
最後にメインの実行可能ファイルを生成する「ラッパー」bashスクリプトで終わります。
このタイプのスクリプトの推奨事項はありますか?私はそれらを以前のバージョンに保存したくないし、それらに対応するものを/etc/init.d
入れたくない。これらの場所の1つはユーザーをだまして実行することができるので、私はそれを避けたいと思います。私は特定のシステムデバイス専用のパスにファイルを保存することを好みます。私が考えることができる最良の方法はまたはですが、それが良い考えなのかよくわかりません。/bin
/sbin
/usr
/lib/systemd/system/<unit>.d/
/etc/systemd/<unit>.d/
また、追加の質問として、ハードコードするのではなく、そのスクリプトパスにその名前を使用できるようにユニットファイルからユニット名を取得する方法はありますか?テンプレートからインスタンス化されたセルはこれを提供できるようですが、そのようなすべてのセルにテンプレートを使用したくはありません。