Fermeture progressive d'une application à partir de la ligne de commande sous Mac OS X

Quitter les applications avec élégance se fait généralement via le menu approprié en choisissant "Quitter", mais l'interface graphique du Mac est évidemment inaccessible depuis la ligne de commande de Mac OS X. Ainsi, lorsque la plupart des utilisateurs en ligne de commande doivent quitter une application, ils finissez en utilisant la commande 'kill' pour terminer le processus et quitter de force l'application, plutôt que de lancer un 'soft' kill. Le problème évident lié à la fermeture d'une application est que même si elle quitte l'application, vous risquez de perdre des données dans ce processus, et même les caches de restauration de session risquent de ne pas être suffisants pour restaurer les données. Ainsi, dans la mesure du possible, il est généralement préférable pour les utilisateurs de quitter une application à la place.


Bien que ce ne soit pas particulièrement connu, vous pouvez envoyer un signal d'arrêt standard à n'importe quelle application graphique Mac OS X à partir de la ligne de commande à l'aide de la commande osascript. C'est assez facile à utiliser, et c'est ce que nous allons couvrir ici.

Comment quitter les applications depuis le terminal sous Mac OS X avec osascript

Là encore, cela enverra un signal de sortie standard à une application plutôt qu'un signal kill (terminate). Cela signifie également que l'application cible ne sortira pas de force si des données non sauvegardées ne sont pas demandées à l'utilisateur (à moins que vous n'ayez activé le paramètre d'enregistrement automatique pour Mac OS X et que l'application n'invite l'utilisateur).

La syntaxe de base pour envoyer un signal de sortie standard à une application GUI sous Mac OS X à partir de Terminal est la suivante:

osascript -e 'quit app "APPLICATIONNAME"'

Par exemple, pour quitter Calendrier à partir de la ligne de commande, remplacez APPLICATIONNAME par "Calendrier"

osascript -e 'quit app "Calendar"'

Étant donné que Calendar se synchronise et n'a pas d'option de sauvegarde, la boîte de dialogue de sauvegarde standard ne s'affiche pas lorsque vous tentez de fermer l'application. Avec les applications qui ont des options de sauvegarde et lorsque la sauvegarde automatique de Mac OS X est désactivée, la boîte de dialogue de sauvegarde sera invoquée comme d'habitude.

Un autre avantage de l'utilisation d'osascript pour fermer les applications avec élégance est que vous pouvez fournir un nom d'application réel, qui est beaucoup plus facile à retenir et plus convivial que de s'appuyer uniquement sur les numéros d'ID de processus associés à la commande kill. Notez que les versions modernes de Mac OS X offrent une commande kill améliorée, plus conviviale, appelée pkill.

Vous pouvez l'utiliser dans un script bash pour fermer des applications à partir de la ligne de commande, ou même le modifier pour se comporter de la même manière que les «Quitter toutes les applications ouvertes» avec l'astuce d'Automator que nous avons couverte il y a quelques temps.