Ce que vous cherchez, c'est launchd
.
Il vous permettra d’exécuter une application en continu (démarrage automatique au démarrage, redémarrage à la fermeture / crash)
Pour l'utiliser ajouter un plist
déposer dans ~/Library/LaunchAgents/
<?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>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>SomeApp.restart</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
</dict>
</plist>
Puis chargez-le une fois avec launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
- le
RunAtLoad
Cette option lancera l'application la première fois que launchctl l'exécutera.
- le
KeepAlive
option relancera l'application si elle se bloque.
- le
StartCalendarInterval
l'exécutera à un moment donné. Vraisemblablement, cela est mutuellement exclusif avec les deux précédents, mais est inclus pour montrer ce qui peut être fait avec launchd
Launchctl va l'exécuter après les redémarrages.
Matthieu Riegler
la source