node.js를 사용하고 Express를 사용하여 브라우저를 통해 작동 할 수있는 홈 미디어 센터 용 컨트롤러를 만듭니다.Node.js vlc 하위 프로세스가 명시 적으로 작동하지 않음
VLC 프로세스를 생성하는 데 많은 어려움을 겪고 있지만 이상하게도 노드 프롬프트에서 실행될 때만 작동합니다. 파일에서 실행하면 안됩니다. 여기
내가 테스트 한 것입니다 : 노드 명령 줄/인터프리터에서: require('child_process').spawn('vlc');
이 내가 기대하는 것처럼, 나는 VLC 창이 열리고 화면에 계속 볼 수 있습니다 작동합니다.
동일한 코드 줄을 사용하여 다른 파일 (예 : test.js)에 넣은 다음 명령 줄에서 node test.js
으로 실행하면 아무 일도 일어나지 않습니다. 자식 프로세스가 몇 초 후에 객체 로그 아웃하는 것은 나에게주는이 :
{ _closesNeeded: 3,
_closesGot: 3,
signalCode: null,
exitCode: 1,
killed: false,
_internal: null,
pid: 11837,
stdin:
{ _handle: null,
_pendingWriteReqs: 0,
_flags: 0,
_connectQueueSize: 0,
destroyed: true,
bytesRead: 0,
bytesWritten: 0,
allowHalfOpen: undefined,
writable: false,
readable: false,
_connecting: false,
_connectQueue: null,
_idleNext: null,
_idlePrev: null },
stdout:
{ _handle: null,
_pendingWriteReqs: 0,
_flags: 1,
_connectQueueSize: 0,
destroyed: true,
bytesRead: 0,
bytesWritten: 0,
allowHalfOpen: undefined,
writable: false,
readable: false,
_events: { close: [Function] },
_connecting: false,
_connectQueue: null,
_idleNext: null,
_idlePrev: null },
stderr:
{ _handle: null,
_pendingWriteReqs: 0,
_flags: 1,
_connectQueueSize: 0,
destroyed: true,
bytesRead: 215,
bytesWritten: 0,
allowHalfOpen: undefined,
writable: false,
readable: false,
_events: { close: [Function] },
_connecting: false,
_connectQueue: null,
_idleNext: null,
_idlePrev: null } }
. 예를 들어 'vlc'을 'gedit'로 바꾸면 텍스트 편집기가 예상대로 정확하게 나타납니다.
누구에게이 아이디어가있을 수 있습니까?
게시 한 코드를 .js 파일에 복사 한 후 node :'sudo node .js' 명령으로 실행했습니다. 나는 출구 코드 1을 곧바로 얻는다. 내가 고려하지 않은 사용 권한이 있는지 궁금합니다. 즉, gedit 및 기타 프로그램은 정상적으로 실행되는 것 같습니다. 내가 뭘 놓치고 있는지 궁금해. –
호기심에서 나는'chmod 777'을 재귀 적으로 전체 디렉토리에 적용 해 보았습니다. 도움을 주셔서 감사합니다. 예를 들어 제가이 문제에 정말 도움이되었습니다. :) –