Como executo uma ação do Automator, script de shell ou AppleScript na inicialização do OS X?

3

Eu sei que você pode executar aplicativos na inicialização de um Mac, mas você pode executar uma ação do Automator, um Serviço, um script de shell ou um AppleScript na inicialização?

Também sei que você pode salvar tudo isso como um aplicativo, mas não quero que ele seja aberto no dock.

    
por gadgetmo 02.01.2012 / 15:50

2 respostas

7

Primeiro de tudo, login é diferente de inicialização . Esta resposta assume que você quer dizer login , como você aparentemente se refere à capacidade de iniciar programas conforme configurado em Preferências do Sistema »Usuários & Grupos .

Execute scripts do Automator usando o utilitário de linha de comando automator e AppleScripts usando osascript . Suas páginas man explicam o uso em detalhes.

Você pode definir um gancho de login , mas ele está bastante desatualizado e obsoleto em favor de launchd .

Você pode criar tarefas launchd colocando arquivos de configuração XML no diretório ~/Library/Launch Agents . Este site contém alguns exemplos bastante mínimos, e você pode ver, e. /System/Library/Launch Agents para exemplos de trabalhos launchd fornecidos pelo sistema. Você precisa da diretiva RunAtLoad para launchd .

Você ainda pode salvar seus scripts do AppleScripts e do Automator como aplicativos e executá-los como tal. Para ocultá-los do Dock, edite o arquivo Contents/Info.plist e adicione uma LSUIElement diretiva como descrita, por exemplo aqui . Isso ocultará o ícone e o menu do Dock.

    
por 02.01.2012 / 16:03
2

Você pode salvar uma lista de propriedades como ~/Library/LaunchAgents/some.label.plist .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>some.label</string>
    <key>ProgramArguments</key>
    <array>
        <string>automator</string>
        <string>/path/to/example.workflow</string>
        <!-- <string>osascript</string>
        <string>/path/to/example.scpt</string> -->
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Ele precisa ser carregado primeiro executando launchctl load ~/Library/LaunchAgents/some.label.plist ou fazendo logout e voltando uma vez.

    
por 03.01.2012 / 01:20