2

I'm trying to start rsync --daemon on Sierra (10.12.6), using launchctl. It used to work fine (last time in Mavericks, I think). But now on Sierra, the daemon does not start and grep rsync /var/log/system.log only shows this:

... rsync[12201]: assertion failed: 16G1408: libxpc.dylib + 20887 [BF896DF0-D8E9-31A8-A4B3-01120BFEEE52]: 0xf

Googling this cryptic message didn't give me a clue either.

I do know about SIP, and have it disabled:

$ csrutil status
System Integrity Protection status: disabled.

The way I'm trying to configure my damon is by following this guide, which consists basically of:

  • creating /etc/rsyncd.conf and rsyncd.secrets
  • creating /Library/LaunchDaemons/org.samba.rsync.plist
  • loading the plist file with launchctl load -w /Library/LaunchDaemons/org.samba.rsync.plist
  • and starting it with launchctl start org.samba.rsync

The plist file does get loaded, but the daemon is not running:

$ launchctl list | grep rsync
-   0   org.samba.rsync

What could this assertion failed: 16G1408: libxpc.dylib message mean?

Has something changed in Sierra with how to start daemons?

  • Can you run r sync from the command line? – Mark Jul 30 '18 at 15:54
  • Yes, it does run from the command-line – mivk Jul 30 '18 at 16:38
2

Apparently, Sierra and possibly earlier versions as well, need the rsync daemon to be started with the --no-detach option, which wasn't needed before.

The error message assertion failed: 16G1408: libxpc.dylib that appeared in the logs when it didn't work remains a mystery. But this .plist file now works to solve the original problem:

<?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.samba.rsync</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/rsync</string>
        <string>--daemon</string>
        <string>--no-detach</string> <!-- This is needed now -->
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
</dict>
</plist>

You must log in to answer this question.

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