Pergunta

Tenho um pequeno programa que quero abrir automaticamente quando meu Mac é iniciado.

Como este programa aceita argumentos da linha de comando, não é tão simples como apenas ir ao sistema Prefs/Contas/Login itens e adicioná -lo lá ...

No Google, li que posso criar um arquivo .Profile na pasta doméstico do meu usuário, e isso executará o que eu colocar nele ... então eu tenho uma página .Profile em ~ como este:

-rw-r--r-@ 1 Matt Staff 27 27 de setembro 13:36 .Profile

Que contém isso ...

/Applications/MouseFix 3.5

Mas não é executado na startup! Se eu entrar manualmente "/Applications/MouseFix 3.5" no terminal, ele funcionará.

Alguma ideia?

Foi útil?

Solução

Daqui e para o futuro, olhe para launchd para o que você quer fazer. Todos os outros métodos foram preteridos ou agora não são suportados. Provavelmente, isso é um pouco mais pesado do que você deseja.

Também pode ser um problema com sua versão do shell bash não executando corretamente o seu .profile. Tente colocar o comando em .bashrc no seu diretório doméstico, e veja se isso ajuda.

Outras dicas

Você pode usar Lingon Para ajudar a construir um arquivo de plista para o Launchd.

A maneira mais geral de lançar coisas no startup no macOS está usando Launchd. Você pode criar um arquivo PLIST para dizer para iniciar seu programa no Startup, que pode incluir argumentos.

Você pode usar o AppleScript que pode executar comandos de terminais e depois o AppleScript lançado na inicialização.

o .profile e .bash_profile Entre em jogo apenas quando você abre um novo shell (por exemplo, abrindo o terminal ou entrando no SSH). Além disso, acredito se Bash detectar .bash_profile Não vai procurar .profile
Se você quiser começar no login, eu olharia para as outras sugestões sobre o Launchd

Você sempre pode escrever um script de wrapper que o executa com os argumentos que deseja

Obrigado a todos. A solução Launchd é bem legal, sim, é pesado para uma coisa tão simples, mas é bom saber, e como desenvolvedor, estou feliz em mexer :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top