1. Node.js 설치

    sudo curl -sL <https://deb.nodesource.com/setup_18.x> | sudo -E bash -
    sudo apt-get install -y nodejs
    

    Trouble shooting

    Untitled

    노드 18 버전을 실행하기 위해서는 glibc 2.28 버전 이상이 필요한데, 우분투 18.04 버전에서는 glibc 2.27 버전을 제공하기 때문에 우분투 20.04로 OS 업그레이드를 진행했다.

    <aside> ℹ️ glibc GNU C Library. C 또는 C++ 언어로 작성된 프로그램에게 다양한 라이브러리를 제공한다. C#, Java, Perl, Python, Ruby 등 많은 프로그래밍 언어는 간접적으로 GNU C 라이브러리를 사용한다.

    </aside>

    sudo apt update
    sudo apt upgrade
    sudo apt dist-upgrade
    sudo apt autoremove
    sudo do-release-upgrade
    

    LTS 버전인 node 18 버전을 사용하기 위해 ubuntu를 20.04 버전으로 업그레이드 했다.

  2. server-side에 pm2 설치 및 세팅

    npm i -g pm2
    
    pm2 startup
    sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u action --hp /home/action
    systemctl enable pm2-action
    

nginx 같은 서비스는 unit 파일을 갖고 있어서 systemctl nginx 같은 명령을 실행할 수 있다.

반면, pm2는 unit 파일을 갖고 있지 않다.

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u action --hp /home/action: pm2 unit 파일 생성

systemctl enable pm2-action: 배포 서버 reboot 할 때 pm2-action 자동으로 실행