J'ai un script shell qui est exécuté par une application AppleScript. Ce script shell redémarre la machine à un moment donné avec shutdown -r now
.
Comment puis-je éviter que l'application AppleScript se lance automatiquement après le redémarrage?
La séquence est la suivante:
Demandez à votre AppleScript d'écrire un file vide dans un location prédéfini et de tester son existence au démarrage du script. Si le file est déjà là, supprimez-le et quittez le script; sinon procédez comme normal et redémarrez.
Vous pouvez essayer de redirect la command shell avec
do shell script "insert_your_command &>/dev/null &"
et puis vous dire l'application pour quitter
MODIFIER
Vous pouvez append un timeout avant de redirect la command.
do shell script "(sleep 5 ; insert_your_command) &>/dev/null &"
Je suppose que OS X est en train de restaurer l'état de l'Apple Script App après son redémarrage. Vous pouvez peut-être essayer de supprimer le script d'Apple, c'est-à-dire son propre état d'application juste avant la command de redémarrage, bien que je n'aie pas vérifié que cela fonctionne ou est possible. Il doit être situé dans ~ ~ Library / Saved Application State /.
Ok trouvé.
Le script shell devait avoir les lignes suivantes:
osascript -e 'tell app "System Events" to restart' killall "Terminal"
Les commands du shell ci-dessus triggersnt le redémarrage via une command Apple Script ad hoc, mais détruisent le terminal immédiatement après. Cela a pour effet de quitter l'application Apple Script juste avant que le process de redémarrage d'OS X ne le fasse. Par conséquent, OS X ne met pas l'application Apple Script dans la list des applications ouvertes qui doivent être rouvertes après le redémarrage.
Deux effets secondaires de l'utilisation de cette méthode:
shutdown -r now
shell qui oblige à redémarrer immédiatement.