Instalar atualizações (ou fazer qualquer outra coisa) no desligamento do Mac OS X é problemático, já que o sistema operacional dá aos processos apenas oito segundos para serem desligados antes de matá-los - tempo insuficiente para fazer atualizações.
No entanto, provavelmente existem maneiras de resolver seu problema. Dependendo de como você e os padrões de trabalho de seu usuário correspondem, você pode esperar que eles notifiquem que há atualizações e é conveniente para eles reiniciarem. Em seguida, digite sua senha de administrador pessoalmente ou em VNC / Compartilhamento de tela.
Como alternativa, se você tiver o SSH ativo, poderá fazer login e usar o programa de linha de comando softwareupdate
.
A Apple sugere que você reinicie seu computador imediatamente após executar softwareupdate
se houver uma atualização que exija, mas você pode permitir que o computador reinicie normalmente no final do dia - a reinicialização certamente não é forçada pelo programa de atualização, como acontece com a versão da GUI. Se você está disposto a arriscar isso, você pode fazer o script: crie a seguinte lista de propriedades do Launchd.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.meaningful.name</string>
<key>ProgramArguments</key>
<array>
<string>softwareupdate</string>
<string>-i</string>
<string>-a</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>20</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
<key>RunAtLoad</key>
<false/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
Salve isso em /Library/LaunchDaemons/some.meaningful.name.plist
e, em um terminal, faça:
sudo launchctl load /Library/LaunchDaemons/some.meaningful.name.plist
Isso executará softwareupdate
todos os dias às 20:00 e instalará todas as atualizações disponíveis.