PM2 save / startup을 해두어도, reboot 시 실행되지 않을시 처리 방안
PM2에서 startup 을 root 가 아닌 계정으로 실행할 경우 아래와 같은 메시지가 표기 된다.
$ pm2 startup
[PM2] You have to run this command as root. Execute the following command:
sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v4.3/bin pm2 startup <distribution> -u <user> --hp <home-path>
이때 당황하지 말고 sudo 이하의 명령어를 실행하면 된다. (꺽쇠로 나온 값에 대하여 셋팅되여 명령어에 표기 된다.)
root 계정이 아닐 경우 발생하는 문제로 설정을 해야 한다.
이후에 startup / service 기동 / save 를 하고 reboot을 해도 문제가 없다.
$ pm2 startup
# 서비스 기동
$ pm2 start app.js --name=serviceName
# 상태 저장
$ pm2 save
예제
상황 : ubuntu 계정으로 재부팅시 pm2 프로세스를 기동하려고 한다.
$> pm2 startup ubuntu
$> sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup ubuntu -u ubuntu --hp /home/ubuntu
$> cd service
$> pm2 start app.js --name=servicename
$> pm2 save