Qual é a maneira mais fácil de executar um script no momento da inicialização no OS X?

11

Eu quero que um script (bash / zsh / ruby / ...) seja executado no momento da inicialização no OS X. Qual é a maneira mais simples de fazer isso, sem mexer nos arquivos xml / plist, e de preferência não precisando fazer um meta AppleScript.

    
por John Bachir 14.02.2011 / 16:49

3 respostas

6

O MacOS X usa o Vixie cron, que possui meta tags especiais para o lançamento no momento da reinicialização. Veja o man page para o formato de arquivo.

algo como:

@reboot /path/to/script.sh

no seu crontab funcionaria. Eu não tenho certeza que esta é uma solução melhor do que o launchd, você provavelmente tem mais meta-ferramentas que examinam o launchd do que o cron.

    
por 14.02.2011 / 17:13
6

Caso você mude de opinião:

<?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>com.superuser.245713</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/script.sh</string>
    </array>
    <key>UserName</key>
    <string>someuser</string>
</dict>
</plist>

Armazene como com.superuser.245713.plist em /Library/LaunchAgents/ e torne root:wheel o proprietário / grupo.

    
por 14.02.2011 / 17:08
2

Também há Ganchos de login se você preferir que o script seja executado (como root) quando um usuário faz login do que quando a máquina é inicializada.

    
por 15.02.2011 / 14:16