Cannot load rsync daemon in Sierra. Log shows: "assertion failed: 16G1408: libxpc.dylib" 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?
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:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
    &lt;key&gt;Disabled&lt;/key&gt;
    &lt;false/&gt;
    &lt;key&gt;Label&lt;/key&gt;
    &lt;string&gt;org.samba.rsync&lt;/string&gt;
    &lt;key&gt;ProgramArguments&lt;/key&gt;
    &lt;array&gt;
        &lt;string&gt;/usr/bin/rsync&lt;/string&gt;
        &lt;string&gt;--daemon&lt;/string&gt;
        &lt;string&gt;--no-detach&lt;/string&gt; &lt;!-- This is needed now --&gt;
    &lt;/array&gt;
    &lt;key&gt;RunAtLoad&lt;/key&gt;
    &lt;true/&gt;
    &lt;key&gt;KeepAlive&lt;/key&gt;
    &lt;dict&gt;
        &lt;key&gt;SuccessfulExit&lt;/key&gt;
        &lt;false/&gt;
    &lt;/dict&gt;
&lt;/dict&gt;
&lt;/plist&gt;