나는 보통 시스템 계정을 사용하지 않고 기본 계정인 ubuntu에 서비스를 구축한다. 그리고 Node.js도 시스템에 설치하지 않고 nvm을 사용해서 설치한다. 그랬더니 startup시에 자동 구동하는데 어려움이 생겼다.
결론은 /etc/rc.local에 su - ubuntu -c cmd로 스크립트를 구동하고, 해당 스크립트 실행시에 PATH variable을 못찾으므로 재설정 해 주고 실행하면 된다.
/etc/rc.local - permission을 755로 맞춰줘야함. #!/bin/sh su - ubuntu -c /home/ubuntu/project/start.sh
/home/ubuntu/project/start.sh #!/bin/bash cd ~/project/ PATH=/home/ubuntu/.nvm/versions/node/v8.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin NODE_ENV=staging PORT=13000 /home/ubuntu/.nvm/versions/node/v8.9.4/bin/forever start -l log.log -a --minUptime 5000 --spinSleepTime 2000 app.js