Posso executar dois programas em andamento em um terminal?

2

Estou desenvolvendo um aplicativo nodejs com as seguintes tarefas npm:

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "watch": "webpack --progress --watch",
  "develop": "npm start && npm run watch",
  "build": "webpack --progress",
  "start": "node server.js"
}

e gostaria de executar dois processos em andamento em um comando em um terminal, que é npm run develop (será executado node server.js e webpack --progress --watch .

Minha pergunta é: posso fazer isso? Se eu puder, como os logs desses dois processos serão exibidos?

    
por Oskar Szura 03.08.2016 / 14:51

2 respostas

3

Sim, você pode fazer isso. Se você tem dois programas, a saber, prog1 e prog2, então tente isto:

 #!/bin/bash
 prog1 2> .errorprog1.log & prog2 2> .errorprog2.log &

Isso redirecionará o erro para separar os registros.

Você também pode tentar isso:

prog1 &
prog2 &

Eu encontrei este thread , que contém muitas dicas úteis que serão benéficas para você. Por favor, passe por isso.

Espero que isso ajude.

Obrigado.

    
por 03.08.2016 / 15:01
2

Você pode executar um comando em segundo plano usando simplesmente & para separá-lo. Então

$ node server.js & $ webpack --progress --watch &

A saída dos dois processos será mixada no terminal, o que pode ser confuso para que você possa registrá-los no arquivo

$ node server.js | tee log1 & $ webpack --progress --watch | tee log2 &

Verifique este para mais detalhes sobre bifurcação.

    
por 03.08.2016 / 15:20