버그 해결을 위한 모든 질문을 던져
0 votes
76 views

현재 NodeJS의 웹서버가 child_process를 이용해 spawn이든 exec를 이용해서 unity 빌드를 실행하려고 합니다.

 

환경은 ealsticbeanstalk의 nodejs 플랫폼에 묶여 있는 linux인데 아래와 같은 문제가 발생합니다.

126 code로 보아 권한 문제라 의심되어, chown과 chmod를 -R 옵션을 이용해 해당 빌드가 있는 폴더와 하위를 모조리 권한을 부여했는데도 위와 같은 에러가 발생합니다.

어떤 부분을 더 확인해 보아야 할까요? 놓치고 있는 부분이 있다면 조언 부탁드리겠습니다.

chown은 nodejs:nodejs 유저와 그룹으로, ec2-user:ec2-user, root:root 세개 대상으로 실험했으며
chmod는 8진수 777로 깡으로 때려버렸습니다 -_-;

 
/bin/sh: /var/app/current/bin/headless/MadServerBuild0.x86_64: Permission denied

    at ChildProcess.exithandler (child_process.js:303:12)
    at ChildProcess.emit (events.js:310:20)
    at maybeClose (internal/child_process.js:1021:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) {
  killed: false,
  code: 126,
  signal: null,
  cmd: '/var/app/current/bin/headless/MadServerBuild0.x86_64'
}
 
asked (53 point) , 76 views

1 답변

+1 vote
자문자답입니다.

해당 현상의 문제는 ebextentions의 command와 container_command의 시점 문제로 확인되었습니다.

위의 두 명령어 모두 ebs의 압축 파일로 포함되어 업로드 된 상태의 파일에는 excute 권한을 주지 못하는 것처럼 보입니다. 혹은 제가 ebextentions의 chown과 chmod의 명령어를 제대로 구동시키지 못했던지요.

 

Putty로 직접 EC2에 들어가 ls -l 명령어를 확인해보니 ebextentions로 실행한 위 명령어들이 제대로 unity 빌드 파일에 적용되지 않았습니다.

 

프로토타이핑 단계라 headless 빌드 파일을 구동 할 때에 nodejs 단에서 직접 권한을 주어 실행시키는 방법으로 해결했으며, 추후에는 쉘 스크립트를 통해 헤드리스 파일의 구동을 제어하는 것으로 방향성을 잡아 보아야겠습니다.
answered (53 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

358 질문
479 answers
485 댓글
1,896 users