Posso definir o OS X para instalar automaticamente as atualizações baixadas quando o computador for desligado?

5

Eu não tenho um servidor nem nada, mas eu tenho 1 iMac rodando o Snow Leopard no meu escritório que um usuário não usa. Eu gostaria de instalar automaticamente as novas atualizações quando o computador for solicitado a desligar todos os dias. Eu sei que posso definir a Atualização de Software para verificar atualizações diariamente e baixá-las, se existirem. Mas o que dizer de instalá-los sem confirmar cada vez. Eu não quero fazer um trabalho do cron, porque se essa pessoa está trabalhando até tarde não seria bom se ela tentasse desligá-los. Além disso, essa pessoa está sendo executada com uma conta de usuário padrão, por isso, para instalar as atualizações, preciso inserir as credenciais da minha conta de nível de administrador. Existe alguma maneira de fazer isso?

    
por jamone 03.06.2011 / 13:57

1 resposta

4

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.

    
por 03.06.2011 / 17:45

Tags