2

これが、このような質問を投稿する SE の適切なセクションではないと思われる場合は、どこに投稿すればよいか教えてください。移動します。

ともかく。launchd で動作する OS X マシンをgit daemonセットアップしました。内部の .plist ファイルは次の/Library/LaunchDaemons/とおりです。

<?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>Label</key>
    <string>org.git.daemon</string>
        <key>UserName</key>
        <string>git-ro</string>
        <key>GroupName</key>
        <string>git-ro</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/local/bin/git</string>
        <string>daemon</string>             
                <string>--inetd</string>
                <string>--reuseaddr</string>
                <string>--verbose</string>
                <string>--base-path=/Users/git/GitRepositories/</string>
                <string>/Users/git/GitRepositories/</string>
    </array>
        <key>Sockets</key>
        <dict>
            <key>Listeners</key>
            <dict>
        <key>SockServiceName</key>
        <string>git</string>
        <key>SockType</key>
        <string>stream</string>
        <key>SockFamily</key>
        <string>IPv4</string>
            </dict>
        </dict>
        <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <false/>
    </dict>
</dict>
</plist>

すべてが魔法のように機能しますが、デーモンはその情報を に記録します/var/log/system.log。その情報(stdout、stderr)を専用のファイルに記録するように指示する方法はあります/var/log/git.logか?

編集StandardOutPath:およびキーも .plistに追加しようとしましたStandardErrPathが、そうすると、launchd が何らかの理由で git デーモンを起動できなくなりますが、その理由はわかりません ( にService could not initialize:for git デーモンが表示されます/var/log/system.log):

...
<key>StandardOutPath</key>
<string>/var/log/git.log</string>
<key>StandardErrorPath</key>
<string>/var/log/git.log</string>
...

編集: .plist ファイルを編集したところ、デーモンはこの構成で動作します (StandardOutPath、StandardErrorPath も問題を引き起こすようです)。これが機能するものです:

<?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>Label</key>
    <string>org.git.daemon</string>
        <key>UserName</key>     
        <string>git-ro</string>
        <key>GroupName</key>
        <string>staff</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/local/bin/git</string>
        <string>daemon</string>
                <string>--inetd</string>
                <string>--reuseaddr</string>
                <string>--verbose</string>
                <string>--base-path=/Users/git/GitRepositories/</string>
                <string>/Users/git/GitRepositories/</string>
    </array>
        <key>Sockets</key>
        <dict>
            <key>Listeners</key>
            <dict>
        <key>SockServiceName</key>
        <string>git</string>
        <key>SockType</key>
        <string>stream</string>
        <key>SockFamily</key>
        <string>IPv4</string>
            </dict>
        </dict>
        <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <false/>
    </dict>
</dict>
</plist>

さて、どうすればデーモンのログを次のようなファイルにリダイレクトできます/var/log/git.logか?

4

1 に答える 1