別ユーザーでapp.jsを自動起動する。

公開:2014-07-16 20:37
更新:2017-09-22 05:40
カテゴリ:node.js,wordpressから静的htmlへ,javascript

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ユーザーで動かせるようになった。この部分で数日を費やしてしまった。