2017-06-19 1 views
0

Ich habe eine Amazon Linux-Instanz über AWS EC2 gestartet. Ich versuche ein Upstart-Skript zu schreiben, das meinen Node-Server beim Start der Instanz startet.Ich versuche, Upstart zu verwenden, um npm-Skript auszuführen, kann aber nicht finden, wo npm installiert ist

Wenn ich npm start im Terminal ausführen, startet mein Node-Server erfolgreich. Ich verwende das folgende Upstart-Skript, aber es startet meinen Server nicht.

# Upstart Script for My Server 
description "my-server" 

start on started mountall 
stop on shutdown 

# Automatically Respawn 
respawn 
respawn limit 99 5 

# Environment Variables 
env NODE_ENV=development 

# Script to Start Server 
script 
    cd /home/ec2-user/my-server 
    exec /usr/bin/npm start >> /var/log/my-server.log 2>&1 
end script 

Überprüfung der /var/log/my-server.log Datei sagt mir /user/bin/npm: No such file or directory.

+0

Warum upstart verwenden (was jetzt weitgehend aufgegeben wurde) statt systemd/monit/pm2/etc. ? – mscdex

Antwort

0

Mein Problem war aufgrund der Tatsache, dass ich installed node using NVM (Node Version Manager) hatte. NPM wurde nicht in meinem Verzeichnis /user/bin installiert. Ich musste nur herausfinden, wo es von NVM installiert wurde.

# Script to Start Server 
# - Referencing 'npm' from Node Version Manager (NVM) install location. 
script 
    cd /home/ec2-user/my-server 
    exec /home/ec2-user/.nvm/versions/node/v4.4.5/bin/npm start >> /var/log/my-server.log 2>&1 
end script 
Verwandte Themen