Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use "npm start" as command to forever in .sh script

I have a .sh script in my /etc/init-d/forever to configure how forever starts and stops my Node.js app.

I wanted to start forever with the command npm start, so I can trigger my scripts from there. Is this possible?

I tried

sudo forever start --sourceDir /home/my-app -c npm start 

but its gets wrong interpreted...

info: Forever processing file: start
error: Cannot start forever
error: script /root/start does not exist.

My script so far is:

NAME=nodeapp
SOUREC_DIR=/home/nodeapp        
COMMAND="npm start"
SOURCE_NAME=index.js
USER=root
NODE_ENVIROMENT=production

pidfile=/var/run/$NAME.pid
logfile=/var/log/$NAME.log
forever=forever

start() {
    export NODE_ENV=$NODE_ENVIROMENT
    echo "Starting $NAME node instance : "

    touch $logfile
    chown $USER $logfile

    touch $pidfile
    chown $USER $pidfile

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    sudo -H -u $USER $forever start --pidFile $pidfile -l $logfile -a --sourceDir $SOUREC_DIR -c $COMMAND

    RETVAL=$?
}
like image 914
Rikard Avatar asked Mar 11 '17 22:03

Rikard


1 Answers

So I found the answer.
Both --sourceDir and the path parameter after the "npm start"command where necessary:

sudo forever --sourceDir /home/my-app -c "npm start" /
like image 87
Rikard Avatar answered Sep 30 '22 13:09

Rikard