Can’t load plist. Launchctl says "Invalid property list", tried plutil, SIP, permissions I want to use the following plist to run a backup script under macos High Sierra. 

File name: 
com.pollux.backup.plist

Content:

&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;Label&lt;/key&gt;
    &lt;string&gt;com.pollux.backup.plist&lt;/string&gt;
    &lt;key&gt;ProgramArguments&lt;/key&gt;
    &lt;array&gt;
     &lt;string&gt;sh&lt;/string&gt;
     &lt;string&gt;-c&lt;/string&gt;
     &lt;string&gt;/bin/backup_pollux_server&lt;/string&gt;
     &lt;key&gt;KeepAlive&lt;/key&gt;
     &lt;/array&gt;
     &lt;key&gt;RunAtLoad&lt;/key&gt;
     &lt;true/&gt;
     &lt;key&gt;StartInterval&lt;/key&gt;
     &lt;integer&gt;3600&lt;/integer&gt;
     &lt;key&gt;StandardErrorPath&lt;/key&gt;
     &lt;string&gt;/tmp/pollux_backup.err&lt;/string&gt;
     &lt;key&gt;StandardOutPath&lt;/key&gt;
     &lt;string&gt;/tmp/pollux_backup.out&lt;/string&gt;
  &lt;/dict&gt;
&lt;/plist&gt;


Permissions: -rw-r--r--@ 1 root    wheel  694  3 Apr 19:57 com.pollux.backup.plist

I use the same script and plist to backup my wife’s MacBook (Mavericks). It runs flawlessly. But when I try to load it with launchctl at my MacBook I get the following error message:

/Library/LaunchDaemons/com.pollux.backup.plist: Invalid property list


I checked the plist with plutil:

LaunchDaemons pollux$ plutil com.pollux.backup.plist
com.pollux.backup.plist: OK


xmllint just shows the content of the plist. 

I switched off the SIP:

LaunchDaemons pollux$ csrutil status
System Integrity Protection status: disabled.


Does anyone have an idea what to try next?
The key KeepAlive had to be removed from the ProgramArguments array and properly enabled (&lt;true/&gt;).

This is how it works now:

&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;Label&lt;/key&gt;
    &lt;string&gt;com.pollux.backup&lt;/string&gt;
    &lt;key&gt;ProgramArguments&lt;/key&gt;
    &lt;array&gt;
     &lt;string&gt;sh&lt;/string&gt;
     &lt;string&gt;-c&lt;/string&gt;
     &lt;string&gt;/bin/backup_pollux_server&lt;/string&gt;
     &lt;/array&gt;
     &lt;key&gt;RunAtLoad&lt;/key&gt;
     &lt;true/&gt;
     &lt;key&gt;KeepAlive&lt;/key&gt;
     &lt;true/&gt;
     &lt;key&gt;StartInterval&lt;/key&gt;
     &lt;integer&gt;3600&lt;/integer&gt;
     &lt;key&gt;StandardErrorPath&lt;/key&gt;
     &lt;string&gt;/tmp/pollux_backup.err&lt;/string&gt;
     &lt;key&gt;StandardOutPath&lt;/key&gt;
     &lt;string&gt;/tmp/pollux_backup.out&lt;/string&gt;
  &lt;/dict&gt;
&lt;/plist&gt;