systemd を採用している Linux 環境で、VPN Server を自動起動するのに、
下記の Unit を /etc/systemd/system/ へ配置してとりあえず動作することを確認しました。
https://github.com/SoftEtherVPN/SoftEth ... er.service
今まで、旧来の init を使用しており、
# service vpnserver start
のようなコマンドで起動できる状態にしており、その中身は /etc/init.d/vpnserver
をシェルスクリプトで起動スクリプトを書いている状態でした。
start の処理の部分に
--
sleep 5
brctl addif br0 tap_eth0
--
を入れており、これは Linux 環境でローカルブリッジを作成するためにこのように
しており、 stop の処理の部分には
--
brctl delif br0 tap_eth0
--
を入れておりました。
これを、systemd で実装したいのですが、どのように実装すれば良いのでしょうか?
下記は失敗します。
softether-vpnserver.service
--
ExecStartPost=/sbin/brctl addif br0 tap_eth0
--
または
--
ExecStartPost=sleep 5; /sbin/brctl addif br0 tap_eth0
--
または
--
ExecStartPost=sleep 5
ExecStartPost=/sbin/brctl addif br0 tap_eth0
--
vpnserver start でサービスを開始した後数秒して、tap_eth0 が作られるようで、
この絡みがあるので今までは5秒待つようにしていました。
今回の systemd ではどうやってもうまく行かず困っています。
brctl delif br0 tap_eth0 に至っては、
ExecStopPre とかいう属性は[service]セクションでは使えないみたいなので
こっちもどうしていいやらわかりません・・・。
以上、ご教示のほどよろしくお願い致します。
systemd での vpnserver 自動起動について(ローカルブリッジ)
-
- Site Admin
- Posts: 2266
- Joined: Sat Mar 09, 2013 5:37 am
Re: systemd での vpnserver 自動起動について(ローカルブリッジ)
SoftEther VPN Server の実行ファイルの代わりに今まで使用していたスクリプトを指定してはいかがでしょうか。
-
- Posts: 28
- Joined: Mon May 20, 2013 6:06 am
Re: systemd での vpnserver 自動起動について(ローカルブリッジ)
> cedar さん
ご教示ありがとうございます。
確かにその方法で無事に動くことを確認しました。
しかし、この方法の場合、余分に1つファイルが増える形となり煩雑に思えます。
init の場合は /etc/init.d/vpnserver
1つで済んでいたものが、systemd の Unit ファイルと、それから呼び出される
シェルスクリプトの2つとなってしまい、しかも systemd の Unit ファイルから該当シェルスクリプト
への絶対パスを記載する形となる為、管理しにくく思います。
systemd の Unit ファイルだけで完結するようなスマートな方法はないでしょうか?
ご教示ありがとうございます。
確かにその方法で無事に動くことを確認しました。
しかし、この方法の場合、余分に1つファイルが増える形となり煩雑に思えます。
init の場合は /etc/init.d/vpnserver
1つで済んでいたものが、systemd の Unit ファイルと、それから呼び出される
シェルスクリプトの2つとなってしまい、しかも systemd の Unit ファイルから該当シェルスクリプト
への絶対パスを記載する形となる為、管理しにくく思います。
systemd の Unit ファイルだけで完結するようなスマートな方法はないでしょうか?