Node.js 打开 Chrome Ubuntu 16.04 LTS

标签 node.js

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

我正在使用 Node 调用 shell 脚本,该脚本又调用 chrome。终端打开并回显 URL,但 Chrome 浏览器未打开。在从 which 命令以及 google-chrome-stable 发现/usr/bin/google-chrome 后,我也尝试过它,但无济于事。为什么 chrome 不能在 Ubuntu 上启动并带有 node.js 子进程?我正在运行桌面版本 16.04 LTS。如果我在没有 Node 的终端上运行这个 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);
     }
 });

外壳(ss.sh)

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

输出: 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();
    }
}
}

最佳答案

这个问题的答案是文件权限,它来自 @paulsm4 评论。他引用了@A.B.来自here的回答.

一旦他发表评论作为答案,我就会接受并删除它。

关于Node.js 打开 Chrome Ubuntu 16.04 LTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317480/

相关文章:

node.js - Node.js 中未定义 XSLTProcessor

node.js - 结束对话

node.js - Nodemailer 和 Outlook 365、535 5.7.139 身份验证失败不符合条件

node.js - 使用 mongoose 和 node.js 的多态用户模型

node.js - 无法使用 datastax-driver 连接到 cassandra(已 stub 的 cassandra)

javascript - 浏览器和nodejs上有没有可以将base64字符串转换为utf8字符串的API?

javascript - 使用 ES5 语法在 Node 中混合默认和命名导出

javascript - 无法使用 Node 检查器调试 Nodejs - Websocket_close

node.js - Helm CSP 无法正常工作?

node.js - 来自 AWS 应用程序负载均衡器的随机 502 错误