본문 바로가기
IT 개인학습/Memo

💻 컴퓨터 재부팅 시 자동으로 ngrok 실행하기 (PM2 + 작업 스케줄러 활용)

by kiimy 2025. 5. 9.
반응형

로컬에서 실행 중인 n8n을 외부에서 접근하려면 ngrok을 통해 터널링을 해야 합니다.
하지만 매번 재부팅 후 ngrok을 다시 실행해야 하는 번거로움을 겪고 있다면,
작업 스케줄러 + PM2를 활용해 자동 실행되는 환경을 만들어 보세요!

🛠 작업 순서

1️⃣ 작업 스케줄러(Task Scheduler) 등록

  1. Win + R → taskschd.msc 입력 후 실행
  2. 좌측 메뉴에서 "작업 만들기" 클릭
  3. 이름은 자유롭게 설정 (Auto Ngrok, ngrok boot, 등)
  4. 보안 옵션에서 가장 높은 권한으로 실행 체크

2️⃣ 트리거 설정

  • 탭에서 [트리거] → 새로 만들기
  • 작업 시작 조건: 로그온할 때 선택
  • 확인 클릭

3️⃣ 동작 설정

  • [동작] → 새로 만들기 클릭
  • 프로그램/스크립트:
    • 아래 명령어로 pm2의 경로를 확인합니다:
      where pm2
    • 가장 마지막 경로 선택 (예: C:\Users\...\AppData\Roaming\npm\pm2.cmd)
  • 인수 추가:
    start ngrok.exe --name ngrok -- http 5678 --domain=<ngrok url>.app
  • 시작 위치:
    • ngrok.exe가 위치한 경로 지정 (예: C:\Users\...\Downloads)

4️⃣ 재부팅 후 확인

  • 컴퓨터를 재부팅하면 cmd 창이 자동으로 열리면서 ngrok이 실행됩니다.
  • 도메인(Ngrok)에 접속해 정상 작동 확인

❗ 문제 발생: PM2 status 실행 시 오류

  • cmd창에서 pm2 status 확인시 Error 발생
Error: connect EPERM //./pipe/rpc.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1636:16)
Emitted 'error' event on ReqSocket instance at:
    at Socket.<anonymous> (C:\Users\kiimy\AppData\Roaming\npm\node_modules\pm2\node_modules\pm2-axon\lib\sockets\sock.js:201:49)
    at Socket.emit (node:events:518:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
  errno: -4048,
  code: 'EPERM',
  syscall: 'connect',
  address: '//./pipe/rpc.sock'
}

원인:

  • PowerShell의 스크립트 실행 정책(Execution Policy) 이 너무 제한적으로 설정되어 있어
    .ps1 형식의 스크립트 실행이 차단됨

✅ 해결 방법: 실행 정책 완화

  1. 관리자 PowerShell 실행
  2. 아래 명령어 입력:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

📌 설명

  • RemoteSigned: 로컬 작성 스크립트는 실행 가능
  • Scope=CurrentUser: 현재 사용자에만 적용 (시스템 전체 X)

🏁 마무리

  • 다시 PowerShell에서 pm2 status 실행
  • ngrok 프로세스가 online 상태로 정상 실행되었는지 확인

이제 재부팅해도 자동으로 ngrok이 실행되며 외부에서 n8n에 접근할 수 있습니다.
pm2 + 작업 스케줄러 조합은 다른 Node.js 기반 스크립트 실행에도 유용하니 적극 활용해보세요!

728x90

댓글