Como faço para hospedar aplicativos node.js com o pm2 sem executá-los como root?

4

Eu configurei o pm2 para executar um aplicativo node.js, e posso iniciá-lo com sucesso e ele irá ressurgir na reinicialização.

No entanto, o daemon pm2 é executado como root, o que me faz pensar que todos os meus scripts de nós também são executados como root? Mesmo que eu os tenha adicionado como usuário regular no sistema. Os arquivos de log e outras coisas são criados no diretório inicial dos usuários, /~/.pm2/logs , mas os logs são de propriedade de root.

quando eu invoco pm2 startup (que lida com a instalação do script init.d etc), ele cria /etc/init.d/pm2-init.sh que se parece com isto:

#!/bin/bash
# chkconfig: 2345 98 02
#
# description: PM2 next gen process manager for Node.js
# processname: pm2
#
### BEGIN INIT INFO
# Provides:          pm2
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description: PM2 init script
# Description: PM2 is the next gen process manager for Node.js
### END INIT INFO

NAME=pm2
PM2=/usr/local/lib/node_modules/pm2/bin/pm2
NODE=/usr/local/bin/node

export HOME="/root"

start() {
    echo "Starting $NAME"
    $NODE $PM2 stopAll
    $NODE $PM2 resurrect
}

stop() {
    $NODE $PM2 dump
    $NODE $PM2 stopAll
}

restart() {
    echo "Restarting $NAME"
    stop
    start
}

status() {
    echo "Status for $NAME:"
    $NODE $PM2 list
    RETVAL=$?
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage: {start|stop|status|restart}"
        exit 1
        ;;
esac
exit $RETVAL

Quando eu despejo os processos (que é o que ele usará quando ressuscitar os processos), vejo menções ao usuário "USER":"pi" , mas não acho que ele seja realmente executado como usuário pi.

Alguma opinião?

    
por jishi 01.10.2013 / 22:31

1 resposta

2

O mais novo pm2-init.sh no projeto pm2 repo tem essa capacidade.

    
por 23.10.2013 / 03:00