본문 바로가기

기술/국문

VSCode 터미널 오류 해결하기

갑자기 발생한 실행 에러

VSCode에서 즐겁게(?) 코딩을 하던 중 급작스럽게 발생한 에러를 대처하기 위해 고군분투한 과정을 공유해보려고 합니다.

 

pm2라는 NodeJS의 프로세스 매니저를 사용하던 중 아래와 같은 에러가 발생하면서 서버 테스트를 할 수 없었습니다.

 

VSCode에서 pm2 시작 시 발생하는 오류

 

이는 스크립트 권한이 제한되어있는 상태이기 때문에 pm2 명령어가 작동하지 않는다는 것으로써 권한을 변경하기 위해서는 PowerShell을 관리자 권한으로 실행하여 변경해주어야 합니다.

 

- Windows PowerShell을 관리자 권한으로 실행합니다.

 

Windows PowerShell 관리자 권한 실행 과정 화면

 

- get-help Set-ExecutionPolicy로 어떤 권한을 설정할 수 있는지 확인합니다.

get-help Set-ExecutionPolicy

* 정책 종류

정책명 설명
AllSigned 로컬 시스템에 작성된 스크립트를 포함하여 신뢰할 수 있는 게시자가 모든 스크립트 및 구성 파일을 서명하여야 합니다.
Bypass 아무것도 차단되지 않으며, 경고나 프롬프트도 표시되지 않습니다.
Default 기본 정책을 실행하며, 윈도우 클라이언트나 원격 서명된 윈도우 서버용으로 제한됩니다.
RemoteSigned 윈도우 서버 컴퓨터의 기본 정책으로 신뢰할 수 있는 게시자가 인터넷에서 다운로드한 구성파일과 모든 스크립트를 서명해야합니다.
Restricted 클라이언트 컴퓨터(일반 윈도우)에서 기본적으로 적용되는 정책입니다. 구성 파일이나 스크립트를 불러올 수 없습니다. 
Undefined 범위에 대대 설정된 정책이 없습니다. 그룹 정책에서 설정하지 않은 범위에서 할당된 실행 정책을 제거합니다. 모든 범위의 실행 정책이 정의되지 않을 경우, 유효한 실행 정책은 제한적입니다.
Unrestricted 파워쉘 6.0부터는 윈도우즈 이외 시스템의 기본 정책으로 변경이 불가능합니다. 모든 구성파일 및 스크립트를 실행하며, 서명되지 않은 스크립트를 인터넷에서 다운받을 경우, 실행 전 사용군한을 묻는 메세지가 표시됩니다.

 

- RemoteSigned로 정책을 변경합니다.

Set-ExecutionPolicy RemoteSigned

 

정책을 변경한 후 VSCode로 다시 돌아가서 pm2 명령어를 실행해보겠습니다.

 

정상적으로 작동하는 화면

 

마치며

이번 글에서는 정책을 변경하여 VSCode 내 터미널에서 문제없이 pm2 명령어를 실행하는 방법에 대해 알아보았습니다. 이 글이 pm2를 사용하다가 이와 같은 오류를 미연에 방지하는 데 조금이나마 도움이 되었으면 합니다.