Passar Variável de Ambiente para o Sudo AWS ec2 sudo node

1

Eu sou novo no linux e na AWS. Eu tenho um servidor node.js em execução em uma instância do EC2. Estou executando o seguinte comando para mantê-lo funcionando indefinidamente e na porta 80:

 $ sudo node app.js &

Agora, quando eu executo usando sudo , meu aplicativo de nó não encontrará nenhuma das variáveis de ambiente.

Eu preciso ser capaz de definir a variável de ambiente USER, PASSWORD e um IP para conectar ao meu banco de dados. Eu tentei inúmeros comandos e só consegui definir uma variável de ambiente, mas ela foi deletada quando eu defini uma nova variável.

SOLUÇÃO

Encontrei o que procurava graças ao exemplo que Jeff Schaller deu abaixo. Eu tentei exatamente como era, mas não sei por que não deu certo, acabei aprendendo um pouco sobre shellscripts.

Primeiro eu corri $ vim runapp.sh . Então eu adicionei o seguinte código:

#!/bin/sh
Clear
export USER="Username"
export PASSWORD="Password"
export IP="1.1.1.1"
Node ./bin/www

Depois de salvar o arquivo, executei $ chmod +x runapp.sh

Finalmente eu corri $ sudo ./runapp.sh & e correu perfeitamente.

Se eu não deveria estar fazendo isso ou se houver um erro ou uma maneira melhor e mais segura de fazê-lo, avise-me para que eu possa corrigi-lo eventualmente.

    
por barracuda 18.04.2016 / 04:59

1 resposta

1

Crie um arquivo como o seguinte:

#!/bin/sh
USER=u PASSWORD=p IP=10.10.10.10 node app.js

... ou ...

#!/bin/sh
USER=u; export USER
PASSWORD=p; export PASSWORD
IP=10.10.10.10; export IP
node app.js

... onde você coloca seus próprios valores lá em vez de "u", "p" e "10.10.10.10". Salve o arquivo como, digamos, runapp , então torne-o executável com chmod u+x runapp e, em seguida, execute-o:

sudo ./runapp &
    
por 18.04.2016 / 12:13