2016-07-14 9 views
1

Ich versuche zu erreichen (denke ich) eine ziemlich einfache Sache, aber konnte keine vorhandenen Antworten finden, also hier geht es.Spawn interaktiver Prozess und beenden in NodeJS

würde Ich mag den folgenden Bash-Skript in Knoten imitieren:

#!/usr/bin/bash 
mysql 

so dass im Grunde genau wie 'mysql' in der Befehlszeile eingeben. Bisher kam ich mit dem Follow-up:

var spawn = require('child_process').spawn; 
var child = spawn('/usr/bin/mysql', [], {stdio: 'inherit', detached: true}); 
child.unref(); 

die ok arbeitet (präsentiert mich mit der mysql-Eingabeaufforderung), aber wenn ich einen Befehl eingeben es wird an der Bash-Befehlszeile nicht die mysql gesendet. Ich habe andere stdio Optionen (Pipe, Ignorieren) mit Listenern auf stdout, stderr etc, aber das hat mich so weit wie hanging leer Prompt versucht. Alle und alle Vorschläge geschätzt!

+0

Warum die down Abstimmung eingestellt? Ich vermute, weil es zu spezifisch ist, aber andererseits können Sie 'mysql' durch irgendeine Art von interaktivem Shellbefehl ersetzen – michauwilliam

Antwort

2

Haben Sie versucht ohne detached: true? Es sollte mit stdio auf inherit gesetzt und getrennt nicht in den Optionen

+0

Duh: 0 Ich habe so viele Kombinationen ausprobiert, dass ich wirklich dachte, dass dieses auch nicht funktionierte. Du hast Recht, losgelöste und unref() loszuwerden. Vielen Dank! – michauwilliam

Verwandte Themen