2

I am trying to setup a subversion server on OS X (Sierra) using the subversion provided with Xcode Server. I followed these instructions for setting up a daemon to automatically start svnserve. My plist file looks like this:

<?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</string>
    <key>ProgramArguments</key>
       <array>
          <string>/usr/bin/svnserve</string>
          <string>--inetd</string>
          <string>--root=/var/subversion/repositories/</string>
          <string>--listen-host=svn.dev.localnet</string>
       </array>
    <key>UserName</key>
       <string>_svn</string>
    <key>RunAtLoad</key>
       <true/>
</dict>
</plist>

When I load the plist using sudo load /Library/LaunchDaemons/org.tigris.suversion.plist, the subversion server does not come up. The system log says "Service exited with abnormal code: 1".

Trying to track down the problem, I issued this command in the shell:

sudo -u _svn /usr/bin/svnserve --inetd --root=/var/subversion/repositories/ --listen-host=svn.dev.localnet 

which I would expect to be exactly what launchctl would start from the plist specifications. However, from the shell, it works as expected, and the subversion server comes up.

Where is my mistake?

1 Answer 1

0

Obviously, my mistake was not to understand that svnserve --inetd behaves differently when launched as daemon from when it is started from the shell.

When started from the shell, the process keeps running until stopped with ctrl-c.

When launched as a daemon (which is the actual intended use of this option) , it will not keep running. Instead, svnserve is started upon a request on port 3690, processes the request, and then terminates. As a consequence, the svnserve cannot be seen in the list of active processes unless a request is being processed at that very moment.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .