AppleScript s'exécute à nouveau après un redémarrage. Comment éviter cela?

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?

  • L'application n'est pas incluse dans les éléments de démarrage
  • L'application est relancée comme n'importe quelle autre application ouverte lorsque le script shell redémarre OS X

La séquence est la suivante:

  1. Je double-clique sur l'application AppleScript
  2. AppleScript lance un script shell dans Terminal
  3. Le script shell, à un certain point, redémarre le système
  4. L'application AppleScript redémarre après le redémarrage

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:

  • le redémarrage via cette command Apple Script permet à l'user de sauvegarder le travail non enregistré à partir d'applications ouvertes, contrairement à la command shutdown -r now shell qui oblige à redémarrer immédiatement.
  • Le terminal est brusquement tué, ce qui peut poser problème si les process sont exécutés dans d'autres windows / tabs Terminal