Estoy creando un pequeño administrador de servidores de juegos propietario en Node.js; Actualmente se ejecuta el juego por medio de desove child_process
:Vinculación al proceso generado a través de nodejs
var server = spawn(cmd, args, { cwd: 'something' });
En tanto que el director sigue para ejecutar comandos que puede canalizar y tratar con el niño como me gustaría. Sin embargo, considere la posibilidad de que mi gerente se bloquee o se cierre. ¿Cómo podría entonces volver a conectar al proceso secundario generado anteriormente (que todavía se estaba ejecutando mientras el administrador estaba inactivo)? Puedo almacenar archivos pidf para tratar de volver a conectar en base a pid; pero no estoy seguro de cómo obtener un objeto child_process
con acceso a los objetos stdio
del niño.
Realmente me gustaría que esto sea recuperable; cualquier ayuda es apreciada, gracias!
Atención:: Los servidores de juego son propietarias, algunos ejemplos son Minecraft, Fuente DS, etc. asume que no tienen acceso a la fuente de Sever.
EDITAR
Después de leer algo de código fuente desde el nodo de child_process
se ve como si se especifica una propiedad en las opciones de llamadas stdinStream
, stdoutStream
o stderrStream
que sólo debe abrir un socket a la misma. (Consulte las líneas 428 - 496). Entonces el problema es, ¿cómo dejo spawn de en realidad haciendo un spawn y en su lugar solo configura sus valores en base a un pid especificado y las secuencias que paso. (Me gustaría tener mi stdinStream
haciendo fs.createWriteStream('/proc/PID/fd/0');
que debería trabajar ya que se crea que fd como una tubería.)
hmm. Me pregunto si podrías hacer eso en CUALQUIER lenguaje de programación, y mucho menos en js/node. Si fuera yo, echaría un vistazo al uso de sockets para resolver este – ControlAltDel
Paso algunos comandos a través de 'stdin' del proceso secundario, ya que tengo poca experiencia con los zócalos * nix ¿cómo podría lograr la recuperación de un 'pipe' al 'stdin' del niño? – Chad
¿Alguien tiene alguna idea sobre esto? – Chad