web-dev-qa-db-ja.com

他のことをする前に、systemdにZFSマウントスクリプトを開始させるにはどうすればよいですか?

現在、Fedora 19でzfsonlinuxを使用していますが、うまく機能します。マウントは、systemdが呼び出すinitscript(zfsに含まれている)を使用して計画どおりに起動時に機能しますが、かなり重大な欠陥があります。マウントされて回復できないため、失敗します。

私が求めているのは、systemdに他のことをする前にスクリプトを起動させる方法です。私はinitscriptsを使用してそれを行う方法を知っています(たとえば2に設定するだけです)が、systemdのターゲットシステムでそれを行うことに関しては私は最も霧がありません。

Zfsを起動する必要があるサービスで設定を試みましたが、Type = idleを除いて、機能しません(ただし、それでも、より良い方法があるはずです)。

Requires=network.target
After=zfs
Type=idle

そして、参考のために、 これはFedoraによって提供されるinitscriptです 。 ZFSがLinux(?)にマウントされる方法の性質上、fstabにエントリを入力してそれを実行することはできず、コマンドを使用してマウントする必要があります。

7
duck.

systemdには、この場合にRequiredMountsForと呼ばれる特定のディレクティブがあります。見る man systemd.directives

使用法はRequiresMountsFor=[mountpoint]、例: RequiresMountsFor=/zfs

重要な質問は、Q状態のように、本当に「他の何か」の状態を反映する必要があるかどうかです。最適なシーケンスと最大の並列化を見つけることをサポートするために、これらの依存関係を可能な限り選択的に使用することがアイデアだと思います。

1
Run CMD