OpenVPNサーバ/クライアントを起動時に立ち上げる

LinuxWindowsの場合は本家HowToに記述があるのだが、
macosxの場合はまた別の作業が必要になる


macosxのサービス起動の仕組みは他のunix系OSと微妙に習慣が異なる
基本的に、起動すると
/System/Library/StartupItems/
/Library/StartupItems/
以下にあるスクリプトを順番に実行していく仕組みになっている、らしい

(補:MacOSX10.4以降はこの手法ではなくlaunchdを利用することを勧めるとのこと)

このうち前者はOSが予め必要とするものを置くのでユーザはいじらず、
後からインストールするものは後者におく、というのがマナー


とりあえず、新しいディレクトリを作る
/Library/StartupItems/OpenVPNserver
(名前は何でもいい、みたい)

起動スクリプトとプロパティリストの二つのファイルを作成

起動スクリプト
/Library/StartupItems/OpenVPNserver/OpenVPNserver

#!/bin/sh

##
# OpenVPN
##

. /etc/rc.common

StartService ()
{
  /usr/local/sbin/openvpn --config /etc/openvpn/server.conf
  /usr/sbin/sysctl -w net.inet.ip.forwarding=1
}
RunService "$1"

本当はもっとスマートに
/etc/hostconfigによるサービスのon/offの切り替えや
stop,restartへの対応とかもここに書くのだが
最低限起動するだけならこれで動く、はず
パーミッションを実行可能(744とか)にしておくのを忘れないように

詳しくは他のStartupItemsのスクリプトを参考にして欲しい


もう1つ、パラメータリストを用意する
/Library/StartupItems/OpenVPNserver/StartupParameters.plist

{
  Description     = "OpenVPN server";
  Provides        = ("OpenVPNserver");
}

こちらも他にいろいろ設定できるようなのだが、とりあえずこんなもんで


後は再起動してみて、プロセスが走っていればOK