Snow Leopardを実行しているiMacにSubversionをインストールしましたが、svnserveを自動的に起動するのに問題があります。私が理解しているように(私はまだOSXにかなり慣れています)、それを行うための最良の方法は、launchdを利用することです。そのために、/ Library/LaunchDaemonsフォルダーに次の.plistファイルを作成しました。 launchctlを使用してこのファイルを実行すると、svnserveは期待どおりに起動しますが、システムの起動時またはログイン時に自動的に起動しません。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>org.tigris.Subversion.svnserve</string>
<key>UserName</key>
<string>Dave</string>
<key>ProgramArguments</key>
<array>
<string>/opt/Subversion/bin/svnserve</string>
<string>--inetd</string>
<string>--root=/Users/Shared/SVNrep</string>
</array>
<key>ServiceDescription</key>
<string>Subversion Standalone Server</string>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<array>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>svn</string>
<key>SockType</key>
<string>stream</string>
</dict>
<dict>
<key>SockFamily</key>
<string>IPv6</string>
<key>SockServiceName</key>
<string>svn</string>
<key>SockType</key>
<string>stream</string>
</dict>
</array>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
ここにいる誰かがこれを機能させる方法について何か提案をしてくれるなら、私は本当に感謝しています。
私が見つけたいくつかのオプション。
まず、 http://www.kashum.com/blog/1217783696 はplistメソッドの使用について説明していますが、使用しているよりも多くのオプションをxmlに指定しているようです。
次に、 http://www.scottboms.com/2007/03/launchsvnserveatstartup/ は、ビルド済みの作業用plistファイルを使用してLaunchDaemonsフォルダーにドロップし、指定されたパスを変更してから実行する方法について説明しています。
Sudo launchctl load /Library/LaunchDaemons/org.tigris.Subversion.plist
で動作していることを確認します
Sudo launchctl list
(または、svnを使おうとしています...)
launchd
モードでinetdCompatibility
plistを作成していませんが、デーモンモードで実行中のプログラムを見つけました。KeepAlive
のNetworkState
はtrue
に設定されています。デーモンモードで実行する場合は、NetworkState
は依存関係をまったく行わないため、launchd
を使用する必要があります。そのため、ほとんどの場合、デーモンはネットワークが起動する前に起動します。
だから、私はおそらく次のような/Library/LaunchDaemons/org.tigris.Subversion.svnserve.plist
を試してみます:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.tigris.Subversion.svnserve</string>
<key>ProgramArguments</key>
<array>
<string>/opt/Subversion/bin/svnserve</string>
<string>-d</string>
<string>--root=/Users/Shared/SVNrep</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true/>
</dict>
</dict>
</plist>
このキーを追加してみてください
<key>RunAtLoad</key>
<true/>
(Disabled、Label、...キーと同じ「レベル」で