L’utilisation de Terminal comme moyen alternatif d’adresser des solutions sur mon Mac m'intéresse de plus en plus. J'ai vu cette question intitulée "Existe-t-il un meilleur moyen d'arrêter / de redémarrer OSX?" .
J'aimerais donc savoir:
Comment éteindre, redémarrer et mettre en veille mon Mac à l'aide de la commande Terminal exclusivement?
Réponses:
La commande que vous recherchez est shutdown . Cela informe tous les utilisateurs que la machine va être arrêtée et demande à toutes les applications de fermer les fichiers, etc.
La commande prend un paramètre -h, -r ou -s pour éteindre, redémarrer ou mettre en veille le Mac.
La commande doit être exécutée en tant que root, vous devez donc utiliser sudo.
par exemple pour redémarrer la machine immédiatement
par exemple, arrêter la machine en 60 minutes
D'après les commentaires, il y a deux choses à aborder
Comment shutdown fonctionne en envoyant un sigterm à tous les processus qui devraient ensuite gérer cela, par exemple sauvegarder les fichiers ouverts, etc. S'ils ne se terminent pas, ils recevront un SIGKILL qui les forcera à mourir sans possibilité de répondre. Les signaux ne sont pas envoyés via la file d'attente de messages de clé normale. Par conséquent, les applications doivent le gérer séparément du code appelé à partir de quitter dans le menu. Une bonne application devrait appeler un code commun des deux.
Cette autre réponse montre comment s’arrêter comme si vous appuyez sur les options du menu. Mais notez que les applications peuvent annuler cet arrêt
la source
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
. Je l'ai aliasé dans un fichier qui provient de mon fichier .bash_profile comme suit:alias lock='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
Arrêtez sans afficher de boîte de dialogue de confirmation:
Arrêtez après avoir affiché une boîte de dialogue de confirmation:
Redémarrez sans afficher de boîte de dialogue de confirmation:
Redémarrez après avoir affiché une boîte de dialogue de confirmation:
Déconnectez-vous sans afficher de boîte de dialogue de confirmation:
Déconnectez-vous après avoir affiché une boîte de dialogue de confirmation:
Aller dormir (
pmset
):Aller dormir (AppleScript):
Mettre les écrans en veille (10.9 et plus tard):
Les codes à quatre lettres des événements Apple sont répertoriés dans
AERegistry.h
.Toutes les commandes d'événements système ci-dessus envoient des événements Apple au
loginwindow
processus.loginwindow
reçoit les mêmes événements Apple que ci-dessus lorsque vous vous déconnectez, redémarrez, arrêtez ou mettez le Mac en veille normalement. Reportez-vous aux Questions techniques QA1134: cause de redémarrage, d'arrêt et / ou de déconnexion par programme .Selon
man shutdown
,shutdown -h now
etshutdown -r now
send traite unTERM
signal suivi d’unKILL
signal.Selon le Guide de programmation Daemons and Services , lorsque vous demandez la déconnexion
loginwindow
, les processus prenant en charge la terminaison soudaine sont envoyés à unKILL
signal et les processus ne prenant pas en charge la terminaison soudaine sont terminés de différentes manières: les applications Cocoa reçoivent laapplicationShouldTerminate:
méthode déléguée, les applications de premier plan recevez l'kAEQuitApplication
événement Apple, les applications d'arrière-plan reçoivent l'kAEQuitApplication
événement Apple suivi d'unKILL
signal et les démons reçoivent unTERM
signal suivi d'unKILL
signal après quelques secondes.la source
Arrêter immédiatement:
Si vous souhaitez mettre un délai à l’arrêt, vous pouvez utiliser la syntaxe de commande suivante:
(paramètre -h: durée d'arrêt du système, où (+) 30 minutes pour arrêter le système)
la source
Également utile, pour vous déconnecter de la ligne de commande du terminal, tapez 'exit':
la source
Ctrl-D
déconnecter, car cela ne gâche pas l'historique de la ligne de commande.