2016-07-11 17 views
1

これはhereと同様の質問です。しかし、私はUbuntuを使用しています。以前の質問の受け入れられた答えは適切ではないようです。Node.js open Chrome Ubuntu 16.04 LTS

私は、nodeを使用してシェルスクリプトを呼び出し、そのシェルスクリプトはchromeを呼び出します。端末が開き、URLがエコーされますが、クロムブラウザは開きません。また、whichコマンドから発見した後に/ usr/bin/google-chromeを試してみましたが、google-chrome-stableも利用できません。なぜ、chromeがUbuntuでnode.jsの子プロセスで起動しないのですか?私はデスクトップバージョン16.04 LTSを実行しています。このシェルスクリプトをノードなしで端末で実行すると、それは大きく実行されます。

JS:

var exec = require('child_process').exec, 
child; 

child = exec('gnome-terminal -x '+__dirname+'/ss.sh http://www.google.com', 
function (error, stdout, stderr) { 
    console.log('stdout: ' + stdout); 
    console.log('stderr: ' + stderr); 
    if (error !== null) { 
     console.log('exec error: ' + error); 
    } 
}); 

SHELL(ss.sh)

#!/bin/bash 
echo $1 
google-chrome $1 --start-maximized 

OUTPUT: enter image description here

編集:私はちょうどUbuntuの14.04を実行している別のボックス上でこれを実行してみましたと受け取りますエラー:/home/user/.pki/nssdbディレクトリの作成に失敗しました。プロットは濃くなります。

JAVA:私はJavaでほぼ同じコードでこれを実行した場合、それは完璧に動作します:

public static void main(String[] args) { 
    try { 
     String url = args[0]; 
     ProcessBuilder pb = new ProcessBuilder("/home/user/ss.sh", url); 
     pb.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
} 
+0

Q: 'gnome-terminal -x /my/directory/ss.sh http:// www.google.com'というコマンドを入力すると、それは"うまくいく "と言えますか? Q:Node.jsから 'gnome-terminal -x pwd'(または" ls "または" echo Hello ")を実行するとどうなりますか? – paulsm4

+0

はい、はい、クロムを開くシェルスクリプトを開きます。 Q2ノードから走ろう... 1 min。ありがとうございました。 – Chris

+0

はい私はss.shスクリプトでQ2から3 cmdsを追加しました。彼らはすべて動作します – Chris

答えて

1

はこれに対する答えは、ファイルパーミッションだったし、paulsm4コメント@から来ました。彼は@ A.Bを参照しています。答えはhereです。

回答としてコメントを投稿するとすぐに、これを受け入れて削除します。

+0

クール - うまくいきました!提案:単にあなた自身の答えを受け入れてください:) – paulsm4

+0

@ paulsm4私はあなたからこの答えを学びました!私はあなたがあなたのコメントでそれを解決したので答えを投稿する他の人がほしいと思った。 – Chris

関連する問題