Executando dois comandos ao mesmo tempo?

0

Aqui está a natureza do meu problema:

Estou usando meu raspberry pi para rodar um servidor wikipedia, então eu gostaria de fazer um launcher (ícone de desktop) que inicie o wikipedia server e abra o navegador web para localhost: 8080. Sempre que estou escrevendo um script para fazer isso, ele faz o que vier primeiro. Por exemplo:

./wikipedia_server; ./web_browser

Quando são separados por um ponto-e-vírgula, ele aguarda a conclusão do processo do servidor da wikipedia (o que nunca acontece) e, em seguida, inicia o navegador da web. Se eu fizer

./web_browser; ./wikipedia_server

ele simplesmente espera até eu fechar o navegador da web.

Existe alguma maneira que eu poderia fazer um pequeno script que iria executar os dois ao mesmo tempo e, em caso afirmativo, como eu faria isso? Obrigado.

    
por Beef 03.10.2015 / 21:51

1 resposta

2

Você pode enviar o servidor da wikipedia para o segundo plano, executar o navegador da web e depois matar o servidor quando terminar:

./wikipedia_server &
server=$!
# wait for TCP port 8080 to open up
while ! netstat -tln | grep -q :8080; do :; done
./web_browser
kill $server

... assumindo que você não quer que o servidor da Wikipedia seja executado, a menos que você também esteja navegando nele.

(atualizado para adicionar a ideia do comentário de Ole Tange: esperar que a porta do servidor da web abra antes de continuar)

    
por 03.10.2015 / 22:17