Ausführen von bash-Befehl (mit root-Zugang) innerhalb nodejs-app

Ich habe ein kleines problem hier.
Ich habe nodejs-app, die ausgeführt werden soll Befehl im OS-bash mit root-rechten f.e.

Befehl ist:
echo „$password“ | /usr/bin/sudo /usr/bin/abc — – key „$username“

Hier ist mein code:

const spawn = require('child_process').spawn;
function sendMessage() {
    let username = 'WhoLetTheDogsOut';
    let password = 'Woof!';
    const echo = spawn('echo', [ password ]);
    const abc = spawn('sudo', [ `/usr/bin/abc --key ${username}` ]);
}
sendMessage();

Bitte, helfen. Ich habe nicht mitbekommen, wo ich falsch bin, nach dem Lesen amtliche Knoten child_process.spawn() doc und ich bekomme den Fehler:
gnokii stderr: sudo: /usr/bin/gnokii –sendsms +375293941196: Befehl nicht gefunden

  • Meinst du zu haben, “ um /usr/bin/abc --key ${username}? Sollten Sie nicht werden ‚.
  • template-string-Literale
  • Sie haben gnokii gnokii.org/index.shtml auf Ihrem system installiert?
  • Ich sehe nicht, wo Sie binden die std-Ausgabe von ‚echo‘ auf die std-Eingabe ‚abc‘.
  • Ja, habe ich installiert gnokii. Ich habe thowed Sie das Stück code, weil es ein copypaste von offizielle nodejs-doc.
  • ok, ich denke, was passiert ist, dass einer der Prozesse hervorgebracht wird scheitern (wahrscheinlich abc als Passwort ist nicht angekommen) und dann die gnokii ist andernfalls für einige andere unabhängige Grund. Sie müssen binden Sie die Standardausgabe von echo an die Standardeingabe von abc. Sollten Sie auch schreiben, die die Fehler aus den beiden echo-und abc und die Ergebnisse posten. echo.stdout.auf(‚data‘ (Daten) => { abc.stdin.write(Daten); });

 

One Reply
  1. 2

    Ich hoffe, dies wird Ihnen helfen , es ist ein Paket von NPM „Knoten-cmd“ eingeben, können Sie Befehle in der bash mit nodejs, Hier ist ein Beispiel:

    var cmd=require('node-cmd');
    
    cmd.get('echo '+password+' | /usr/bin/sudo /usr/bin/abc --key '+username,
        function(data){
            console.log('The result of the command:'+data)
        }
    );

    Denken geben permisions (chmod) auf die Datei, und führen Sie den Prozess wie root, wenn Sie brauchen.

    Dies ist die Quelle https://www.npmjs.com/package/node-cmd

    • Ich werde es mal versuchen und poste das Ergebnis später. Danke!
    • Vielen vielen Dank, es funktioniert!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.