app.jsというかスクリプトをroot権限で実行させるのはセキュリティ・リスクがあるので別ユーザーで起動させ、さらには別ユーザーで自動起動させようといろいろ試していたがようやくできた。
最初foreverで/etc/rc.d/rc.localに以下を書いてみたが実行できず。
sudo -u node -H /usr/local/bin/node /usr/local/bin/forever start \
-p /var/run/forever \
--pidfile /var/run/node/node-app.pid \
-l /var/log/node/node-app.log -a \
-d \
/var/www/node/nodeweb1/app.js
手動でrc.localを起動するとうまく動くのだが。
次にpm2で実行しても結果は同じ。動かすためのパーミッションが足りないのかなとか思うが、手動で実行できる。私の知識では手詰まりだ。 いろいろググると、「node.jsのアプリケーションの実行ユーザーを変更」に実行時にユーザーを変更する方法が書いてあった。 これでapp.jsのインスタンスをnodeユーザーで動かせるようになった。この部分で数日を費やしてしまった。