Actualmente estoy creando un servidor de Minecraft para controlarlo con Node JS y un proceso secundario. Sin embargo, al intentar ejecutar un comando de Minecraft desde el nodo para pasarlo al servidor, el servidor no responde en absoluto. Después de jugar un poco con él, descubrí que, si bien el servidor funciona correctamente, el proceso del servidor no está conectado con el proceso del nodo principal. Este es el código que estoy usando:
//Spawn and run the server var svEnv = cp.spawn("java", [ "-Xms4096M", "-Xmx4096M", "-jar", "server.jar", "nogui" ], { shell: false, detached: true, cwd: `${config.server.directoryPath}`, stdio: "pipe" }); svEnv.unref(); Para probar la ejecución de un comando, simplemente uso svEnv.stdin.write(`${cmd}\n`) . He notado que cuando se separa se establece en falso, los comandos se ejecutan bien, sin embargo, cuando se habilita la separación, el servidor ignora las entradas, pero la función de devolución de llamada todavía se ejecuta cuando la escritura termina de ejecutarse. Revisé las propiedades de conexión del proceso del servidor:
svEnv.stdin.writable -> verdadero
svEnv.conectado -> falso
Supongo que la opción separada que se establece en verdadero desconecta los canales IPC entre el niño y el padre.
¿Es posible que los canales IPC sigan funcionando cuando se separa el proceso secundario?
nota: estoy usando windows 10