Strongswanデーモンは、.pidファイルと.ctlファイルを/var/runに入れて、すでに実行されているかどうかを検出します。
異なるネットワーク名前空間の同じシステムで複数のデーモンを実行したいと思います。私は別のディレクトリをバインドマウントしてこれを達成しようとしました(例:/ etc / namespace1を名前空間1の/ var / runにバインドし、/ etc / namespace2を名前空間2の/ var / runにバインド)。 /var/run は /run へのシンボリックリンクなので、以下のようにマウントを /run にバインドします。
ほぼ次のように達成できます。
""デフォルトの名前空間へ""
$:~ sudo echo "red" >> /etc/red/run/pidfile
$:~ sudo echo "blue" >> /etc/blue/run/pidfile
$:~ sudo ip netns exec red
「「赤い名前空間へ」」
$:~ mount --bind /etc/red/run/ /run/
$:~ cat /var/run/pidfile
赤
「青い名前空間へ」
$:~ mount --bind /etc/blue/run/ /run/
$:~ cat /var/run/pidfile
青
だからこれは素晴らしい作品です。これにより、デーモンが赤い名前空間内に/var/run/charon.pidを作成するときに、青い名前空間の/var/run/charon.pidと混同することなく両方のインスタンスを起動できます。
しかし、問題は次のとおりです。 red名前空間で「終了」してから、「ip netns exec red bash」を介して再入力すると、マウントはもう存在しません。つまり、/var/run/redfile はまったくありません。
もしそうなら、問題はどのようにこれを粘り強くすることができるかということです。 /etc/fstabを変更する必要がありますか?しかし、これはうまくいきません。誰かが要求すると、「機能しません」という詳細を提供できます。
わかりません。助けてくれてありがとう。
ありがとうございます!
ベストアンサー1
簡単な解決策は、Strongswanの各インスタンスに正しいPID値を設定して、別のディレクトリを使用してPIDファイルを保存するように指示することです。IPSEC_PIDDIR
起動および停止スクリプトの環境変数。