MacOS X(Leopard)では、サービスを起動するのは launchd。
慣れ親しんだ inetd や xinetd ではないので、ちょっと戸惑いました。
目的は、辞書サーバの ndtpd を inetd から起動するのと同じように、launchd から起動することです。
まずは基本ということで、 man launchd と man launchd.plist をじっくり読みます。
ユーザのログインに関係なく動かしたいプログラムについては、/System/Library/LaunchDaemons/ の下に、起動したいプログラムに関する情報を XML 形式で書いたファイルを置けばよい、とのこと。
とりあえずは /System/Library/LaunchDaemons/telnet.plist を参考にして、ndtp.plist というファイルを作ってみました。
.plist はデフォルトで Property List Editor がバインドされているので、こちらを使って編集します。
Disabled → No にして、ProgramArguments に /usr/local/sbin/ndtpd と –inetd の2つを書きます。ついでに UserName に ndtpd を起動させるユーザ名を指定して再起動。
これで emacs から lookup を動かすと、ちゃんと ndtpd が動くようになりました。