Automatischer Start von svnserve unter Snow Leopard

Automatischer Start von svnserve unter Snow Leopard

Ich habe Subversion auf meinem iMac mit Snow Leopard installiert, habe aber Probleme, svnserve automatisch zu starten. So wie ich es verstehe (ich bin noch ziemlich unerfahren mit OSX), ist die beste Möglichkeit, dies zu tun, launchd zu verwenden. Zu diesem Zweck habe ich die folgende .plist-Datei im Ordner /Library/LaunchDaemons erstellt. Wenn ich launchctl verwende, um diese Datei auszuführen, startet svnserve wie erwartet, aber es startet nicht automatisch, wenn das System hochfährt oder ich mich anmelde.

<?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>

Ich wäre sehr dankbar, wenn mir hier jemand einen Vorschlag machen könnte, wie man das zum Laufen bringen könnte.

Antwort1

Versuchen Sie, diesen Schlüssel hinzuzufügen

<key>RunAtLoad</key>
<true/>

(auf derselben Ebene wie die Tasten Disabled, Label usw.)

Antwort2

Ich habe im Modus keine launchdPlists erstellt inetdCompatibility, aber ich habe festgestellt, dass das Ausführen von Programmen im Daemon-Modus mit auf eingestellten Programmen KeepAliveziemlich gut funktioniert. Sie müssen beim Ausführen im Daemon-Modus verwenden, da überhaupt keine Abhängigkeiten erstellt werden, sodass der Daemon fast immer gestartet wird, bevor das Netzwerk aktiv ist.NetworkStatetrueNetworkStatelaunchd

Ich würde es also wahrscheinlich mit einem versuchen, /Library/LaunchDaemons/org.tigris.subversion.svnserve.plistdas so aussieht:

<?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>

Antwort3

Ein paar Optionen, die ich gefunden habe.

Erste,http://www.kashum.com/blog/1217783696beschreibt die Verwendung der plist-Methode, scheint aber mehr Optionen in der XML anzugeben, als Sie verwenden.

Zweite,http://www.scottboms.com/2007/03/launchsvnserveatstartup/beschreibt die Verwendung einer vorgefertigten, funktionierenden plist-Datei, die in den LaunchDaemons-Ordner abgelegt wird, den angegebenen Pfad ändert und dann ausgeführt wird

sudo launchctl load /Library/LaunchDaemons/org.tigris.Subversion.plist

und überprüfen Sie, ob es funktioniert mit

sudo launchctl list

(oder, wissen Sie, der Versuch, SVN zu verwenden …)

verwandte Informationen