J'ai un script programmé pour s'exécuter comme LaunchDaemon. Le script s'exécute bien lorsqu'il est lancé manuellement via le terminal.
J'ai deux commandes
sudo launchctl unload -F /Library/LaunchDaemons/com.test.plist
sudo launchctl load -F /Library/LaunchDaemons/com.test.plist
plist ci-dessous
<?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.plist</string>
<key>Program</key>
<string>/usr/local/bin/test.sh</string>
<key>StandardErrorPath</key>
<string>/tmp/com.test.plist.err</string>
<key>StandardOutPath</key>
<string>/tmp/com.test.plist.out</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>18</integer>
<key>Minute</key>
<integer>4</integer>
</dict>
lorsqu'ils sont exécutés séparément, ils fonctionnent. Mais une fois planifiés dans launchd, ils s'exécutent pendant une fraction de seconde puis sont déchargés. Je suppose qu'une fois qu'il a déchargé le script, il arrête de fonctionner. Je change les valeurs des intervalles définis dans le plist avec un autre script ce qui explique pourquoi j'ai besoin de décharger et de charger. Y a-t-il un autre moyen de faire cela ?
0 votes
A quoi ressemble la liste - nous devons savoir quelles options vous avez choisies.
0 votes
Eh bien, cela devrait juste exécuter le script et d'après ce que vous dites qu'il fait - qu'est-ce que le fichier texte de sortie montre - qu'est-ce que le script fait / Aussi, que voulez-vous dire par "décharger" - ici, le plist exécute votre script.
0 votes
Il n'écrit rien dans le fichier plist.out. J'obtiens quelques messages d'erreur 'launchd assertion failed' dans la console mais à part ça, rien. Le script fait une sauvegarde initiale et décharge / charge la nouvelle heure de programmation qui est mise à jour en utilisant un autre script qui s'exécute en premier et utilise plistbuddy pour effectuer les changements.