これは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
編集:私はちょうど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();
}
}
}
Q: 'gnome-terminal -x /my/directory/ss.sh http:// www.google.com'というコマンドを入力すると、それは"うまくいく "と言えますか? Q:Node.jsから 'gnome-terminal -x pwd'(または" ls "または" echo Hello ")を実行するとどうなりますか? – paulsm4
はい、はい、クロムを開くシェルスクリプトを開きます。 Q2ノードから走ろう... 1 min。ありがとうございました。 – Chris
はい私はss.shスクリプトでQ2から3 cmdsを追加しました。彼らはすべて動作します – Chris