> Posts > 보기

24. 마케팅 프로그램 운영을 위한 PM2 프로세스 관리

마케팅 자동화 프로그램이나 봇을 운영할 때 가장 당혹스러운 순간은 서버가 재부팅되거나 알 수 없는 에러로 프로그램이 종료되어 작업이 중단되는 상황입니다. 우분투 서버 환경에서 24시간 중단 없는 서비스를 유지하기 위해서는 강력한 프로세스 매니저가 필수적입니다. 오늘은 Node.js 기반의 프로세스 관리 도구이지만 파이썬, 쉘 스크립트 등 다양한 실행 파일까지 완벽하게 제어할 수 있는 PM2의 실무 활용법을 상세히 알아보겠습니다.


#리눅스 #우분투 #PM2 #프로세스관리 #마케팅자동화 #서버운영 #Nodejs #IT실무 #운영가이드 #백그라운드실행

1. PM2 도입의 필요성과 특징

1. PM2 도입의 필요성과 특징

일반적으로 터미널에서 프로그램을 실행하면 접속이 끊기는 순간 프로그램도 함께 종료됩니다. nohup이나 &를 사용할 수도 있지만, 프로그램이 비정상 종료되었을 때 자동으로 재시작해주지는 못합니다. PM2는 다음과 같은 강력한 기능을 제공하여 실무자의 부담을 덜어줍니다.

  • 자동 재시작: 프로그램이 예기치 않게 종료되면 즉시 다시 실행합니다.

  • 부하 분산(Cluster Mode): CPU 코어 수에 맞춰 프로세스를 여러 개 띄워 성능을 극대화합니다.

  • 로그 관리: 표준 출력과 에러 로그를 실시간으로 기록하고 관리합니다.

  • 서비스 자동 실행: 서버가 재부팅되어도 설정된 프로그램들을 자동으로 다시 시작합니다.

2. PM2 설치 및 기본 환경 구성

우분투에서 PM2를 사용하기 위해서는 먼저 Node.js와 npm이 설치되어 있어야 합니다. 전역(Global) 옵션으로 설치하여 어디서든 명령어를 사용할 수 있게 구성합니다.

설치 명령어

Bash

# 패키지 매니저 업데이트
sudo apt update

# Node.js 및 npm 설치 (이미 있다면 생략)
sudo apt install nodejs npm -y

# PM2 전역 설치
sudo npm install pm2 -g

3. 실무에서 바로 쓰는 핵심 프로세스 제어 명령어

마케팅 프로그램을 구동하고 상태를 확인하는 과정은 매우 직관적입니다. 프로그램의 언어에 상관없이 PM2는 실행을 도와줍니다.

프로세스 시작과 관리

Bash

# 프로그램 실행 (이름 지정 권장)
pm2 start app.js --name "marketing-bot"

# 파이썬 프로그램 실행 시
pm2 start script.py --interpreter python3 --name "naver-auto"

# 현재 실행 중인 리스트 확인
pm2 list (또는 pm2 status)

# 특정 프로세스 정지 및 삭제
pm2 stop marketing-bot
pm2 delete marketing-bot

실시간 모니터링 프로그램이 제대로 동작하는지, 리소스는 얼마나 쓰는지 실시간으로 확인하는 것이 운영의 핵심입니다.

Bash

# 실시간 로그 확인 (가장 많이 사용)
pm2 logs marketing-bot

# 대시보드 형태의 리소스 모니터링
pm2 monit

4. 서버 재부팅 대비 자동 실행(Startup) 설정

서버 점검이나 예기치 못한 정전으로 우분투가 재부팅되었을 때, 수동으로 프로그램을 다시 켜는 것은 실무에서 큰 리스크입니다. PM2의 startup 기능을 통해 이를 자동화할 수 있습니다.

자동 실행 등록 절차

  1. 현재 실행 중인 프로세스 리스트를 덤프 파일로 저장합니다.

Bash

pm2 save

  1. 시스템 부팅 시 PM2가 실행되도록 스크립트를 생성합니다.

Bash

pm2 startup

이후 터미널에 출력되는 코드를 복사해서 실행하면, 서버가 켜질 때마다 pm2 save 했던 리스트가 자동으로 복구됩니다.

5. 효율적인 로그 관리와 용량 최적화

마케팅 프로그램은 작업 내역을 로그로 남기기 때문에 시간이 지날수록 로그 파일의 크기가 비대해져 디스크 용량을 압박할 수 있습니다. 이를 방지하기 위해 pm2-logrotate를 함께 사용하는 것이 실무의 정석입니다.

로그 로테이션 설정

Bash

# 모듈 설치
pm2 install pm2-logrotate

# 설정 확인 및 변경 (예: 최대 10MB 단위로 7개까지 보관)
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7

6. 결론: 안정적인 마케팅 운영의 기반

PM2는 단순히 프로그램을 띄워주는 도구를 넘어, 시스템의 가용성을 책임지는 파수꾼 역할을 합니다. 특히 대량의 계정을 관리하거나 반복적인 작업을 수행하는 마케팅 자동화 프로그램에서는 프로그램 자체의 성능만큼이나 이를 감싸고 있는 관리 환경이 중요합니다. 오늘 정리해 드린 PM2 가이드를 통해 여러분의 마케팅 서버를 365일 중단 없이 안전하게 운영해 보시길 바랍니다.



[함께 보면 좋은 루젠소프트 서비스] 루젠VPN은 비즈니스에 최적화된 고정 IP 서비스를 제공하며, 루젠호스팅은 안정적인 서버 인프라를 구축해 드립니다.

루젠VPN 바로가기: https://vpn.luzensoft.com | 루젠호스팅 바로가기: https://hosting.luzensoft.com


리눅스, 우분투, PM2, 프로세스관리, 마케팅자동화, 서버운영, Nodejs, IT실무, 운영가이드, 백그라운드실행