Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

359
Visualizações
Node.js en Ubuntu: proceso Chilld con stdio canalizado, no emite stdout y stderr

Tengo una instalación nueva de Ubuntu 20.04.2 (ejecutar en una máquina virtual en mac).

Instalé Node.js v16 (a través del canal de software oficial) y observé un problema extremadamente extraño. Los procesos secundarios generados con studio: 'pipe' no emiten ningún dato stdout o stderr .

Pasos para reproducir:

niño.js

 console.log("Some text"); const interval = setInterval(() => { console.log("Other text") }, 100) setTimeout(() => clearInterval(interval), 1000);

principal.js

 const childProcess = require('child_process'); const child = childProcess.spawn('node', ['child.js'], { stdio: 'pipe'}); if (child.stdout) { console.log("Attach std listeners") child.stdout.on('data', data => console.log("Child stdout:", String(data))); child.stderr.on('data', data => console.log("Child stderr:", String(data))); } child.on('close', (...args) => { console.log("Child closed", args); });

Ejecutar node test.js produce lo siguiente en la terminal de Ubuntu para mí:

 Attach std listeners CLOSED [ 0, null ]

(cuando lo ejecuto en macOS, obtengo como se esperaba múltiples Child stdout: Other text en la salida)

Mientras que si cambio stdio para inherit en el script principal, se expone la salida del proceso secundario:

 Some text Other text Other text Other text Other text Other text Other text Other text Other text Other text Child closed [ 0, null ]

Me indica que el proceso secundario se ejecuta sin problemas, pero por alguna razón, un niño no emite stdout ni stderr cuando se supone que su salida debe canalizarse.

El mismo problema ocurre con otras versiones de Node.js que verifiqué (v14, v17, v18nightly)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Parece que el problema es cuando Node.js se instala a través del administrador de dependencias Snap (por lo tanto, el instalador oficial del software Ubuntu).

Luego, el software se coloca en un espacio aislado en contenedores de solo lectura, con acceso restringido a otras partes del sistema y, como se muestra, eso no puede funcionar para Node.js.

Solución: no instale Node.js a través de Snap, instálelo a través de apt en su lugar

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda