2016-07-11 5 views
1

here과 비슷한 질문입니다. 그러나 나는 우분투를 사용하고 있으며 이전 질문의 대답은 적절하지 않다고 받아 들였다.Node.js Chrome 우분투를 엽니 다. 16.04 LTS

노드를 사용하여 차례로 크롬을 호출하는 셸 스크립트를 호출하고 있습니다. 터미널이 열리고 에코가 있지만 Chrome 브라우저가 열리지 않습니다. 또한/usr/bin/google-chrome을 which 명령에서 발견 한 후 google-chrome-stable을 사용하지 않으려 고 시도했습니다. 왜 chrome이 우분투에서 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 

출력 : enter image description here

편집 : 난 그냥 우분투 14.04를 실행하는 다른 상자에서이 작업을 실행하고 수신 시도 오류 : /home/user/.pki/nssdb 디렉토리를 만들지 못했습니다. 줄거리가 두껍게 나타납니다.

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(); 
    } 
} 
} 
+0

Q : 'gnome-terminal -x /my/directory/ss.sh http : // www.google.com'명령을 입력하면 "훌륭하게"실행됩니까? Q : Node.js에서'gnome-terminal -x pwd' (또는 "ls"또는 "echo Hello")를 실행하면 어떻게 되나요? – paulsm4

+0

예, Q1을 열면 크롬을 여는 쉘 스크립트가 열립니다. Q2 노드에서 달리자. 1 min. 고맙습니다. – Chris

+0

예 ss.sh 스크립트에서 Q2의 3cmds를 추가했으며 모두 작동합니다. – Chris

답변

1

이에 대한 대답은 파일 권한이었고, 그것이 @ paulsm4 코멘트에서왔다. 그는 @A.B를 참조합니다. here에서 답하십시오.

답변으로 의견을 올리면이를 수락하고 삭제합니다.

+0

쿨 - 다행이었습니다! 제안 : 단순히 자신의 대답을 수락하십시오 :) – paulsm4

+0

@ paulsm4 나는이 대답을 당신에게서 배웠습니다! 나는 당신이 대답 할 때까지 표절 인 것 같은 기분이 든다. 나는 당신이 당신의 코멘트에서 그것을 풀었 기 때문에 다른 사람들이 대답을 게시하기를 바라지 않았다. – Chris

관련 문제