Node.js打开Chrome Ubuntu 16.04 LTS

这是一个类似的问题在这里 。 不过,我使用Ubuntu和上一个问题的接受答案似乎并不相关。

我使用节点来调用一个shell脚本,该脚本又调用chrome。 terminal打开并回显url,但Chrome浏览器无法打开。 我也试过/ usr / bin / google-chrome后发现它来自which命令以及google-chrome-stable无济于事。 为什么不使用node.jssubprocess在Ubuntu上启动chrome? 我运行桌面版本16.04 LTS。 如果我在没有节点的terminal上运行这个shell脚本,它运行的很好。

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: 在这里输入图像说明

编辑:我只是试图运行在另一个运行Ubuntu 14.04的盒子上,并收到错误:无法创build/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(); } } } 

答案是文件许可,它来自@ paulsm4评论。 他从这里引用@AB答案。

只要他发表评论作为答案,我会接受并删除这个。