Node.js 打开 Chrome Ubuntu 16.04 LTS

标签 node.js

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

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

相关文章:

json - 使用Express在Node JS中输出JSON对象

javascript - 在服务器上运行 Node.js 的要求

node.js - 在Azure Web App的iisnode上运行Next.js的问题

node.js - 从 gitlab 管道将 node.js 应用程序部署到 AWS EB 时出现问题

node.js - "EXDEV: cross-device link not permitted"错误是什么意思?

javascript - 确定去优化的原因

node.js - NPM 5 的依赖项和 devDependencies 有什么区别

node.js - 创建 Express 服务时如何在 Node.js 中使用 `index.js`?

node.js - MIME 二进制数据转 PDF

javascript - 如何将子集合添加到 Firestore 中的文档?