Это похоже на вопрос here. Однако я использую Ubuntu, и принятый ответ предыдущего вопроса не кажется актуальным.Node.js открыть Chrome Ubuntu 16.04 LTS
Я использую узел для вызова сценария оболочки, который в свою очередь вызывает хром. Терминал открывается, а echo - URL-адрес, но браузер Chrome не открывается. Я также попробовал/usr/bin/google-chrome после обнаружения его с помощью команды which
, а также google-chrome-stable
безрезультатно. Почему хром не запускается на Ubuntu с дочерним процессом node.js? Im работает настольная версия 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
Edit: Я просто попытался запустить это на другом поле работает в 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();
}
}
}
В: поэтому, если вы наберете команду типа 'gnome-terminal -x /my/directory/ss.sh http: // www.google.com', она« отлично работает »? Q: что произойдет, если вы запустите 'gnome-terminal -x pwd' (или« ls »или« echo Hello ») из Node.js – paulsm4
Да, чтобы Q1, он открывает скрипт оболочки, который открывает хром. Q2 дайте мне попробовать запустить с узла ... 1 мин. Спасибо. – Chris
Да, я добавил три cmds из Q2 в свой скрипт ss.sh и все они работают – Chris