javascript
  • node.js
  • bash
  • 2016-09-28 3 views 0 likes 
    0

    私はここで少し問題があります。 私は、root権限を持つOSのbashでコマンドを実行する必要のあるnodejsアプリケーションを持っています。nodejsアプリケーション内でbashコマンド(rootアクセス可能)を実行

    コマンドは: echo "$ password" |

    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(); 
    

    してください、助けします。/ usr/bin/sudoのは/ usr/binに/ ABC --key "$ユーザー名" ここ

    は私のコードです。私はofficial Node child_process.spawn() docを読んだ後、間違っているところ私が取得できませんでしたし、私はエラーを取得しておくよ: gnokii標準エラー出力します。sudo:は/ usr/binに/ gnokii 375293941196 --sendsms:コマンドが

    +0

    あなたは 'の/ usr/binに/ ABC --key $ {ユーザー名}' 'の周りに持っている意味するかですか?彼らはいけません '。 – phreed

    +0

    @phreed [テンプレート文字列リテラル](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals) – ASDFGerte

    +0

    gnokii http://gnokii.org/index.shtmlがインストールされていますか?システム? – phreed

    答えて

    2

    を見つけていない、私は願っていますこれはNPM "node-cmd"のパッケージであり、nodejsでbashでコマンドを実行することができます。次に例を示します:

    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) 
        } 
    ); 
    

    ファイルにパーミッション(chmod)を与え、必要に応じてrootのようなプロセスを実行することを忘れないでください。

    これは、ソースhttps://www.npmjs.com/package/node-cmd

    +0

    私はそれを試し、後で結果を投稿します。ありがとう! –

    +0

    ありがとう、それは動作します! –

    関連する問題