2016-12-24 16 views
0

Ich mache eine Chat-App und integriere es auf einer Website. Wenn ich den Befehl 'node index.js' auf dem lokalen Server ausführe, funktioniert alles einwandfrei. Aber wenn ich versuche, Knoten js auf einem dedizierten Server zu installieren und zu versuchen, den Befehl 'nohup node index.js &' über ssh auszuführen, gibt es folgende Nachricht.Wie node js auf dedizierten Server ausführen?

nohup: ignoriere Eingabe und Anhängen Ausgang `nohup.out‘

ich die auf dieser Website genannten Verfahren gefolgt war für die Installation von Knoten js auf Server https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts

Kann mir jemand helfen, bitte?

+0

Versuchen Sie, 'node' App mit' PM2' Manager in der Produktion laufen. –

+0

Können Sie bitte im Detail erklären @Mukesh Sharma – IaSdwIB

+0

Dies kann Ihnen helfen. http://stackoverflow.com/documentation/node.js/2975/deploying-node-js-applications-in-production/21325/deployment-using-pm2#t=20161224111450433553 –

Antwort

0

Zuerst müssen Sie Node korrekt installieren. Ich schrieb ein Tutorial darüber: How to get Node 6.7.0 on Linux (natürlich können Sie neuere Versionen verwenden, ändern Sie einfach die Version in den Befehlen).

Im Grunde ist es so etwas wie dieses - die Version einer ändern Sie mögen:

# change dir to your home: 
cd ~ 
# download the source: 
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz 
# extract the archive: 
tar xzvf node-v6.1.0.tar.gz 
# go into the extracted dir: 
cd node-v6.1.0 
# configure for installation: 
./configure --prefix=/opt/node-v6.1.0 
# build and test: 
make && make test 
# install: 
sudo make install 
# make a symlink to that version: 
sudo ln -svf /opt/node-v6.1.0 /opt/node 

Ich empfehle Gebäude Knoten von der Quelle und immer make test läuft, aber Sie können auch ein Binärpaket installieren, die schneller ist - nur machen sicher, dass Sie die Probleme mit Pfaden und Hashbang-Zeilen verstehen, wenn Sie dies tun - weitere Informationen dazu und weitere Installationsoptionen sind in my tutorial beschrieben.

Dann müssen Sie sicherstellen, dass Ihre Anwendung jedes Mal gestartet wird, wenn der Server neu gestartet wird. Ich empfehle Upstart, wenn du kannst.

Mit Upstart, so etwas wie dies in /etc/init/YOURAPP.conf sparen:

# When to start the service 
start on runlevel [2345] 

# When to stop the service 
stop on runlevel [06] 

# If the process quits unexpectadly trigger a respawn 
respawn 

# Start the process 
exec start-stop-daemon --start --chuid node --make-pidfile --pidfile /www/YOURAPP/run/node-upstart.pid --exec /opt/node/bin/node -- /www/YOURAPP/app/app.js >> /www/YOURAPP/log/node-upstart.log 2>&1 

einfach ändern:

  • YOURAPP auf den Namen Ihrer eigenen App
  • /opt/node/bin/node auf Ihren Weg zum node
  • /www/YOURAPP/app/app.js zum Pfad Ihrer Node App
  • /www/YOURAPP/run, wo Sie Ihre PID-Datei wollen
  • /www/YOURAPP/log, wo Sie wollen Ihre Protokolle
  • --chuid node---chuid OTHERUSER, wenn Sie es als ein anderer Benutzer ausgeführt werden soll als node

(stellen Sie sicher, ein hinzufügen Benutzer mit einem Namen von oben)

Mit Ihrem /etc/init/YOURAPP.conf an Ort und Stelle können Sie Ihren Server sicher neu starten und Ihre App läuft noch, können Sie ausführen:

start YOURAPP 
restart YOURAPP 
stop YOURAPP 

starten, starten und stoppen Sie Ihre App - was auch automatisch beim Systemstart oder Herunterfahren geschehen würde.

Für weitere Informationen siehe die Antworten zu:

Sie auch systemd dafür aber there are some differences als das System much more complicated ist und führt oft zu some problems verwenden können.

Verwandte Themen