Eu queria saber em qual arquivo devo colocar esse comando bash para que ele seja executado na inicialização.
# Start the MongoDB server
/Applications/MongoDB/bin/mongod --dbpath /usr/local/mongo/data --fork --logpath /usr/local/mongo/log
I foram vasculhando a net e acho que é entre ~/.bashrc
, ~/profile
, /etc/bashrc
, /etc/profile
ou ~/.bash_profile
. Embora eu tenha tentado isso e eles parecem funcionar na inicialização do terminal, não na inicialização do Mac . Estou faltando um arquivo?
/etc
ele deverá ser executado na inicialização? Importa em que está?/etc/bashrc
e assim por diante são executados quando você inicia um shell, da mesma forma~/.bashrc
- é que o primeiro será executado sempre que qualquer usuário iniciar um shell, e não apenas o seu usuário.Para executar um comando na inicialização do OS X, você precisa usar
launchd
.Se você não quiser usar o Lingon , precisará criar uma
launchd
Lista de propriedades. Este é um arquivo XML, para que você possa fazer isso com o seu editor de texto favorito ou, como alternativa, pode usar o Editor de Lista de Propriedades instalado com as Ferramentas de Desenvolvimento do Mac OS X. Crie o seguinte:Salve isso em
/Library/LaunchAgents/some.meaningful.name.plist
(você precisará de uma conta de administrador e / ousudo
), abra um terminal e faça:Isso fará com que o launchd carregue o item, o que fará com que o MongoDB inicie na inicialização. Como bônus, ele
launchd
será monitorado e, se sair por algum motivo, será reiniciado. Para se livrar do item, basta substituir a carga no comando acima por descarregar.fonte
<key>LaunchOnlyOnce</key><true/>
ao comando.Outra solução simples do Stack Overflow : Você pode:
your_name.app
será criado);Faça logoff, faça login novamente, e você deve terminar. ;)
fonte
Para iniciar comandos ao efetuar login, você pode fazer o seguinte:
Crie um arquivo de texto contendo seus comandos (script bash):
Salve este arquivo em
~/Library/Startup.cmd
chmod +x ~/Library/Startup.cmd
fonte
@reboot
. No entanto, minha resposta permitiria iniciar um programa gráfico, por isso acho útil.cmd
vez desh
?Você terá que ver como
launchd
elaunchctl
trabalhar no MacOS. Você pode começar lendo as páginas de manual dos dois comandos. Você pode procurar dentro/Library/LaunchAgents/
e/Library/LaunchDaemons/
exemplos de como configurar aplicativos para carregar em momentos diferentes através dalaunchctl
interface.Aqui está um exemplo que encontrei no Stack Overflow que pode ajudá-lo ainda mais.
fonte
Se você deseja uma abordagem que funcione no Linux e no Mac OS X, uma tarefa cron deve ser suficiente (edite suas tarefas cron executando
crontab -e
):(créditos: https://unix.stackexchange.com/questions/49207/how-do-i-set-a-script-that-it-will-run-on-start-up-in-freebsd )
fonte
Eu estava interessado em uma resposta unix muito simples para esse problema e a encontrei em outro site . Aqui está um resumo da solução.
O padrão para shells de login é sempre procurar os arquivos de configuração do bash com "profile" no nome, nesta ordem: / etc / profile, ~ / .bash_profile, depois ~ / .bash_login e, por fim, ~ / .profile. Quando os shells de login saem, eles lêem ~ / .bash_logout.
No meu caso, acabei de criar o ~ / .bash_profile e, em seguida, abri as preferências do aplicativo Mac Terminal e alterei a opção "Shell abre com" do padrão para / bin / bash. É isso aí. Limpo e simples.
fonte
terminal aberto, tipo
adicione este texto ao arquivo:
fonte