Usar um arquivo de configuração e adicionar as variáveis por meio do script de inicialização do aplicativo é realmente a maneira correta de lidar com isso. Se você precisar fornecer determinadas variáveis de ambiente para scripts ou binários que não sejam de shell (como perl, python ou java), chame-os com um wrapper de shell, forneça as variáveis necessárias e, em seguida, exec
do script real.
Se seus aplicativos forem iniciados por algum tipo de script, ele deve ser iniciado chamando um shell (o shebang na parte superior do arquivo), mesmo que o usuário não tenha um shell de login. Você pode, portanto, modificar as variáveis de ambiente através dos arquivos rc do shell, da mesma forma que faria com os usuários comuns. Eu acredito que você ainda precisaria inserir a variável BASH_ENV para fazer com que os arquivos rc disparassem, já que você está chamando o script de forma não interativa.
Recomendamos enfaticamente que você use o método antigo e crie algum tipo de configuração para os aplicativos. Será muito mais fácil gerenciar a longo prazo.