Estou ficando mais interessado em usar o Terminal como uma maneira alternativa de abordar soluções no meu Mac. Eu já vi essa pergunta intitulada "Existe uma maneira melhor de desligar / reiniciar o OSX?" .
Gostaria, portanto, de saber:
Como desligar, reiniciar e dormir meu Mac usando o comando Terminal exclusivamente?
Respostas:
O comando que você procura é o desligamento . Isso informa a todos os usuários que a máquina será desligada e diz a todos os aplicativos para fechar arquivos, etc.
O comando usa um parâmetro -h, -r ou -s para desligar, reiniciar ou adormecer o Mac.
O comando deve ser executado como root, assim você precisa usar o sudo.
por exemplo, para reiniciar a máquina imediatamente
por exemplo, para desligar a máquina em 60 minutos
Dos comentários, há duas coisas a serem abordadas
Como funciona o desligamento é enviar um sigterm para todos os processos que devem lidar com isso, por exemplo, salvar arquivos abertos etc. Se eles não saírem, eles receberão um SIGKILL que os força a morrer sem chance de responder. Os sinais não são enviados pela fila de mensagens principais, de modo que os aplicativos precisam lidar com isso separadamente para o código que é chamado ao sair do menu. Um bom aplicativo deve chamar código comum de ambos.
Esta outra resposta mostra como desligar como se você atingisse as opções do menu. Mas observe que os aplicativos podem cancelar esse desligamento
fonte
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
. Tenho-o alias em um arquivo que é originária na minha Bash_profile da seguinte forma:alias lock='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
Encerre sem mostrar uma caixa de diálogo de confirmação:
Encerre após mostrar uma caixa de diálogo de confirmação:
Reinicie sem mostrar uma caixa de diálogo de confirmação:
Reinicie após mostrar uma caixa de diálogo de confirmação:
Efetue logout sem mostrar uma caixa de diálogo de confirmação:
Efetue logout após exibir uma caixa de diálogo de confirmação:
Vá dormir (
pmset
):Vá dormir (AppleScript):
Coloque as telas em suspensão (10.9 e posterior):
Os códigos de quatro letras para os eventos da Apple estão listados em
AERegistry.h
.Todos os comandos de eventos do sistema acima enviam eventos da Apple para o
loginwindow
processo.loginwindow
recebe os mesmos eventos da Apple como acima, quando você efetua logout, reinicia, encerra ou coloca o Mac em modo de suspensão normalmente. Consulte Perguntas e respostas técnicas QA1134: Programaticamente causando reinicialização, desligamento e / ou logout .De acordo com
man shutdown
,shutdown -h now
eshutdown -r now
send processa umTERM
sinal seguido por umKILL
sinal.De acordo com o Guia de Programação de Serviços e Serviços da Daemons , quando você solicita o
loginwindow
logout, os processos que oferecem suporte à terminação súbita são enviadosKILL
e os processos que não oferecem suporte à terminação súbita são finalizados de maneiras diferentes: Os aplicativos de cacau recebem oapplicationShouldTerminate:
método delegado, os aplicativos de primeiro plano receba okAEQuitApplication
evento Apple, os aplicativos em segundo plano recebem okAEQuitApplication
evento Apple seguido por umKILL
sinal e os daemons recebem umTERM
sinal seguido por umKILL
sinal após alguns segundos.fonte
Desligamento imediatamente:
Se você deseja atrasar o desligamento, use a seguinte sintaxe de comando:
(-h parâmetro define o tempo para desligar, onde (+) 30 minutos para parar o sistema)
fonte
também útil, para sair do prompt da linha de comando do terminal, digite 'exit':
fonte
Ctrl-D
sair, pois não desarruma o histórico da linha de comando.