Do programas fonte .bashrc quando executado?

1

Eu adiciono à minha variável de ambiente PATH no meu arquivo .bashrc (Ubuntu v12). Eu também tenho um serviço (Atlassian Bamboo) que depende das modificações em PATH . Quando eu reinicio o serviço (que é executado como meu usuário local, onde as alterações de .bashrc são feitas), ele irá "originar" o arquivo .bashrc para refrescar as variáveis de ambiente para que ele as tenha? Ou eu preciso reiniciar a máquina?

    
por void.pointer 26.01.2015 / 03:46

2 respostas

2

Os shells não interativos não obtêm .bashrc a menos que sejam solicitados manualmente, e além disso, o serviço provavelmente não invoca o shell (a menos que tenha algum tipo de script wrapper).

Como proceder depende exatamente do que você está tentando alcançar. Os serviços geralmente têm seus próprios arquivos de configuração para modificar seu comportamento, e o ambiente também pode ser especificado para cada serviço especificamente (eu não sou um usuário do Ubuntu, então não sei como isso funciona no seu sistema - é novato, certo?) . Você também pode modificar .profile que é carregado no login - variáveis, exportadas neste arquivo, são acessíveis a todos os filhos. Se o serviço for realmente executado globalmente pelo sistema init (pela raiz que apenas muda para seu nome de usuário), isso também não funcionará. /etc/environment pode funcionar, mas eu não recomendaria isso, é feio.

No seu caso, a única maneira realmente limpa é definir o ambiente para o seu serviço.

    
por 26.01.2015 / 08:47
0

Para shells bash não interativos, como scripts bash, o arquivo .bashrc não é originado. Somente shells de bash interativos que não são shells de login fornecem esse arquivo. Para mais informações, você pode ver a seção INVOCATION da página man do bash (1).

Normalmente, um serviço não será descendente de um shell interativo, de forma que as alterações de .bashrc não terão efeito sobre ele.

    
por 26.01.2015 / 04:00