Um pipe não é usado para iniciar processos simultâneos. Ele faz isso, mas é usado principalmente para configurar um fluxo de dados entre dois estágios de um pipeline.
Em vez do seu pipeline, use
npm run start-json-server &
server_pid="$!"
sleep 1
node ./test/index-cjs.js
kill "$server_pid"
Isso iniciaria o primeiro comando em segundo plano. Haveria então um atraso de um segundo antes do início do segundo comando. Quando o segundo comando termina, o primeiro comando é eliminado.
O PID do processo de segundo plano iniciado mais recentemente (um processo iniciado usando &
no final dele) está disponível como "$!"
e aqui usamos esse fato para rastrear os PIDs do primeiro comando .