1 votes

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

J'ai un shell script qui est exécuté par une application AppleScript. Ce shell script redémarre la machine à un moment donné avec shutdown -r now .

Comment éviter que l'application AppleScript se relance 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 toute autre application ouverte lorsque le shell script redémarre OS X.

La séquence est la suivante :

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

1voto

nohillside Points 82672

Demandez à votre AppleScript d'écrire un fichier vide à un emplacement prédéfini et de tester son existence lorsque le script démarre. Si le fichier est déjà là, supprimez-le et quittez le script ; sinon procédez normalement et redémarrez.

1voto

adayzdone Points 1798

Vous pouvez essayer de rediriger la commande shell avec

do shell script "insert_your_command &>/dev/null &"

et ensuite dire à l'application de quitter

EDIT
Vous pouvez également ajouter un délai avant de rediriger la commande.

 do shell script "(sleep 5 ; insert_your_command) &>/dev/null &"

0voto

Flying Trashcan Points 604

Mon avis est qu'OS X restaure l'état de l'application Apple script après son redémarrage. Vous pourriez éventuellement essayer de faire en sorte que l'Apple script supprime son propre état d'application juste avant la commande de redémarrage, bien que je n'aie pas vérifié que cela fonctionne, ou soit possible. Il devrait être situé dans, ~/Bibliothèque/Saved Application State/.

0voto

DavidD Points 384

Ok, je l'ai trouvé.

Le shell script devait avoir les lignes suivantes :

osascript -e 'tell app "System Events" to restart'
killall "Terminal"

Les commandes shell ci-dessus initient le redémarrage par une commande Apple script ad hoc, mais tuent le Terminal immédiatement après. Ceci a pour effet de quitter l'application Apple script juste avant que le processus de redémarrage d'OS X ne le fasse. Par conséquent, OS X ne met pas l'app Apple script dans la liste des apps ouvertes qui doivent être rouvertes après le redémarrage.

Deux effets secondaires de l'utilisation de cette méthode :

  • Le redémarrage par le biais de cette commande Apple script laisse une chance à l'utilisateur de sauvegarder le travail non sauvegardé des applications ouvertes, contrairement à l'application shutdown -r now commande shell qui force un redémarrage immédiat.
  • Le terminal est toujours tué brusquement, ce qui peut poser un problème si des processus sont en cours d'exécution dans d'autres fenêtres/onglets du terminal.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X