"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Ubuntu 인스턴스에서 PMor 다중 사용자 액세스 설정

Ubuntu 인스턴스에서 PMor 다중 사용자 액세스 설정

2024-08-28에 게시됨
검색:440

Setting Up PMor Multi-User Access on Ubuntu Instance

프로덕션 서버에서 Node.js 애플리케이션을 관리하려면 애플리케이션이 원활하게 실행되고 충돌 시 자동으로 복구되도록 프로세스 관리자가 필요한 경우가 많습니다. PM2는 프로세스 모니터링, 로그 관리, 클러스터 모드와 같은 강력한 기능을 제공하는 가장 인기 있는 Node.js 프로세스 관리자 중 하나입니다.

Google Cloud Ubuntu 인스턴스에서 애플리케이션을 실행하는 경우 PM2 프로세스를 시작한 사용자에게만 표시되는 상황이 발생할 수 있습니다. 서버에 개발자, 시스템 관리자 또는 자동화된 배포 스크립트와 같은 여러 사용자가 있는 경우 문제가 될 수 있습니다. 이 블로그 게시물에서는 PM2를 시스템 전체 서비스로 구성하여 서버의 모든 사용자가 액세스할 수 있도록 하는 단계를 안내합니다.

PM2를 시스템 전체 서비스로 구성하는 이유는 무엇입니까?

기본적으로 PM2는 이를 시작한 사용자의 프로세스로 실행됩니다. 즉, 한 명의 사용자로 서버에 SSH로 접속하고 PM2 프로세스를 시작하면 SSH를 통해 로그인하는 다른 사용자에게는 해당 프로세스가 표시되지 않습니다. 이 문제를 해결하기 위해 시스템 수준에서 서비스로 실행되도록 PM2를 구성할 수 있습니다. 이 접근 방식에는 여러 가지 장점이 있습니다.

  • 프로세스 가시성: 서버의 모든 사용자가 PM2 프로세스를 보고 관리할 수 있습니다.
  • 자동 시작: 시스템 부팅 시 PM2가 자동으로 시작되어 애플리케이션이 항상 실행되도록 합니다.
  • 중앙 집중식 관리: 로그와 프로세스 상태가 중앙 집중화되어 애플리케이션을 더 쉽게 관리할 수 있습니다.

전제 조건

시작하기 전에 다음 사항을 확인하세요.

  1. Google Cloud Ubuntu 인스턴스입니다.
  2. Node.js 및 npm이 인스턴스에 설치되었습니다.
  3. PM2가 전 세계적으로 설치되었습니다.

1단계: PM2를 전역적으로 설치

모든 사용자가 PM2에 액세스할 수 있도록 하려면 전역적으로 설치해야 합니다. npm:
을 사용하여 PM2를 전역적으로 설치할 수 있습니다.

sudo npm install -g pm2

이 명령은 PM2를 전역 npm 디렉터리에 설치하여 시스템 전체에서 사용할 수 있도록 합니다.

2단계: PM2를 시스템 전체 서비스로 설정

다음으로 PM2를 서비스로 실행하도록 설정해야 합니다. 이를 통해 PM2는 특정 사용자 세션에 연결되지 않고 시스템 수준에서 프로세스를 관리할 수 있습니다.

다음 명령을 실행하여 PM2에 필요한 시작 스크립트를 생성하세요.

pm2 startup

이 명령은 Ubuntu 인스턴스(일반적으로 systemd)에서 사용하는 init 시스템을 감지하고 PM2를 시스템 전체 서비스로 구성하기 위해 sudo로 실행해야 하는 명령을 제공합니다. 출력은 다음과 같습니다:

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u  --hp /home/

여기서 은 처음 PM2를 설정한 사용자의 사용자 이름으로 바꿔야 합니다. 이렇게 하면 PM2 프로세스가 올바른 사용자의 홈 디렉터리에 연결됩니다.

3단계: 생성된 명령 실행

이전 단계의 출력에 제공된 명령을 복사하여 실행합니다. 예를 들어:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe

이 명령은 올바른 환경 변수와 사용자 컨텍스트를 사용하여 PM2를 시작하는 시스템 서비스를 생성합니다.

4단계: PM2 프로세스 목록 저장

재부팅 후에도 유지하려는 PM2에서 실행 중인 프로세스가 이미 있는 경우 현재 프로세스 목록을 저장해야 합니다. 그러면 시스템이 시작될 때 PM2가 프로세스를 복원하는 데 사용할 덤프 파일이 생성됩니다.

pm2 save

pm2 save 명령은 현재 관리되는 프로세스 목록을 ~/.pm2/dump.pm2의 JSON 파일에 저장합니다. 이 파일은 PM2가 시작될 때 자동으로 로드되므로 재부팅 후 애플리케이션이 다시 작동됩니다.

5단계: 부팅 시 PM2 서비스가 시작되도록 활성화

시스템 부팅 시 PM2가 자동으로 시작되도록 하려면 서비스를 활성화해야 합니다:

sudo systemctl enable pm2-johndoe

johndoe를 적절한 사용자 이름으로 바꾸세요. 이 명령은 PM2 서비스를 활성화하여 시스템이 부팅될 때마다 시작되도록 합니다.

6단계: 모든 사용자로 PM2에 액세스

이제 PM2는 시스템 전체 서비스로 구성되었으므로 서버의 모든 사용자가 액세스할 수 있습니다. 프로세스 상태를 확인하거나 나열하려면 모든 사용자가 다음을 실행할 수 있습니다.

pm2 list

이 명령은 로그인한 사용자에 관계없이 시스템 전체 PM2 서비스에서 관리하는 프로세스 목록을 표시합니다.

7단계: 공유 로그에 대한 추가 구성(선택 사항)

여러 사용자가 PM2 로그에 액세스해야 하는 경우 파일 권한을 조정하거나 공유 디렉터리에 로그를 저장하도록 PM2를 구성해야 할 수 있습니다. 이렇게 하면 모든 사용자가 PM2에서 실행되는 프로세스에 대한 로그를 보고 관리할 수 있습니다.

로그 파일 디렉터리를 변경하려면 다음 환경 변수를 사용할 수 있습니다.

export PM2_HOME=/path/to/shared/pm2/home

/etc/environment와 같은 전역 구성 파일에서 이를 설정하여 세션 전반에 걸쳐 지속되게 만듭니다.

8단계: 사용자 전체의 PM2 프로세스 관리

PM2가 서비스로 설정되면 사용자는 표준 PM2 명령을 사용하여 프로세스를 관리할 수 있습니다. 그러나 권한 및 사용자 역할에 따라 일부 명령에는 sudo 액세스가 필요할 수 있습니다. 예를 들어:

sudo pm2 list

이 명령은 시스템 전체 PM2 서비스에서 관리하는 프로세스를 나열하므로 관리자와 개발자가 서버 관리에 대해 더 쉽게 협력할 수 있습니다.

결론

PM2를 Ubuntu 인스턴스에서 시스템 전체 서비스로 설정하면 Node.js 애플리케이션이 강력하게 관리되고 서버의 모든 사용자가 액세스할 수 있습니다. 이 설정은 사용자가 여러 명이거나 자동화된 배포 프로세스가 있는 환경에서 특히 유용하며, 애플리케이션을 관리하는 안정적이고 중앙 집중화된 방법을 제공합니다.

이 가이드에 설명된 단계를 따르면 모든 사용자가 PM2를 사용할 수 있고 시스템 재부팅 후 프로세스가 자동으로 다시 시작되며 로그에 쉽게 액세스할 수 있습니다. 이는 서버 관리를 단순화할 뿐만 아니라 프로덕션 애플리케이션의 안정성도 향상시킵니다.

즐거운 코딩하세요!

릴리스 선언문 이 기사는 https://dev.to/manojspace/setting-up-pm2-for-multi-user-access-on-ubuntu-instance-5g95?1에 복제되어 있습니다. 침해가 있는 경우에는 Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3