Grasiøst Lukk et program fra kommandolinjen i Mac OS X

Avslutte apper grasiøst gjøres vanligvis gjennom den aktuelle programmenyen ved å velge "Quit", men Mac GUI er åpenbart utilgjengelig fra kommandolinjen til Mac OS X. Så når de fleste kommandolinjebrukerne konfronteres med behovet for å avslutte et program, de slå opp med "kill" -kommandoen for å avslutte prosessen og tvinge opp appen, i stedet for å utstede en "myk" drep. Det åpenbare problemet med å avslutte en app er at mens du avslutter programmet, kan du miste data i den prosessen, og selv krasjer for gjenoppretting av senter er kanskje ikke tilstrekkelige for å gjenopprette dataene. Når det er mulig, er det vanligvis best for brukerne å stilig avslutte et program i stedet.


Selv om det ikke er spesielt kjent, kan du sende et standard avsluttsignal til en hvilken som helst Mac OS X GUI-app fra kommandolinjen ved hjelp av osascript-kommandoen. Det er ganske enkelt å bruke, og det er det vi skal dekke her.

Hvordan Gracefully avslutte apper fra terminalen i Mac OS X med osascript

Igjen, dette vil utgjøre et standard avsluttingssignal til et program, snarere enn et drepe (avslutte) signal. Det betyr også at målprogrammet ikke vil tvinges til å gå ut hvis det ikke er lagret data uten at brukeren blir bedt om å skrive inn (med mindre du har automatisk lagringsinnstilling aktivert for Mac OS X, og programmet ikke spør brukeren som et resultat).

Grunnleggende syntaks for å sende et standard avslutningssignal til et GUI-program i Mac OS X fra Terminal er som følger:

osascript -e 'quit app "APPLICATIONNAME"'

For eksempel, for å avslutte Kalender fra kommandolinjen, erstatt APPLICATIONNAME med "Kalender"

osascript -e 'quit app "Calendar"'

Fordi Kalender synkroniserer og ikke har et lagringsalternativ, blir du ikke presentert med standard lagringsdialog når du prøver å lukke appen. Med programmer som har lagret alternativer og når Mac OS X har automatisk lagring deaktivert, blir dialogboksen lagret som vanlig.

En annen fordel ved å bruke osascript for å lukke apper grasiøst er at du kan gi et aktuelt søknadsnavn, noe som er mye lettere å huske og ganske mye mer brukervennlig enn å stole helt på prosess ID-numre som går med kill-kommandoen. Vær oppmerksom på at moderne versjoner av Mac OS X tilbyr en forbedret drepekommando som er mer brukervennlig, kjent som pkill.

Du kan bruke dette i et bash-skript for å lukke applikasjoner fra kommandolinjen, eller til og med endre det til å oppføre seg på samme måte som "Avslutt alle åpne apper" med Automator-trick vi dekket en stund tilbake.