J'ai besoin d'exécuter un script dans des intervalles qui nécessitent un utilisateur Root pour s'exécuter. J'ai créé un plist qui appellera un script en ~/bin/test.sh
.
user@MBP:~$ ls -lah ~/bin/
-rw-r--r-- 1 root staff 566B Feb 6 23:44 test.plist
-rwxr-xr-x 1 root staff 51B Feb 6 23:38 test.sh
En voici le contenu :
user@MBP:~$ cat ~/bin/test.plist
<?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>com.test.script</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>/Users/user/bin/test.sh</string>
</array>
<key>StartInterval</key>
<integer>30</integer>
</dict>
</plist>
user@MBP:~$ cat ~/bin/test.sh
#!/bin/sh
cp /Users/user/bin/dummy.txt /etc
Ensuite, j'ai fait un lien symbolique avec la liste de diffusion dans /Library/LaunchAgents
.
user@MBP:~$ ls -lah /Library/LaunchAgents/
lrwxr-xr-x 1 root wheel 31B Feb 5 06:28 com.test.script.plist -> /Users/user/bin/test.plist
Mais tout cela ne fonctionne pas. Quand je regarde /var/logs/system.log
ça dit juste :
Feb 7 14:42:12 MBP com.apple.launchd.peruser.501[242] (com.test.script`[925]): Exited with code: 1