2016-12-24 113 views
0

我正在做一個聊天應用程序並將其整合到一個網站上。當我在本地服務器上執行teh命令'node index.js'時,一切正常。但是當我嘗試在專用服務器上安裝節點js並嘗試通過ssh執行命令'nohup node index.js &'時,它會提供以下消息。如何在專用服務器上運行節點js?

的nohup:忽略輸入和輸出追加到`的nohup.out」

我曾跟隨在本網站提到的服務器上安裝節點JS的https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts

有人可以幫助我,請的方法是什麼?

+0

嘗試在生產環境中使用'pm2'管理器運行'node'應用程序。 –

+0

能否詳細解釋一下@Mukesh Sharma – IaSdwIB

+0

這可以幫到你。 http://stackoverflow.com/documentation/node.js/2975/deploying-node-js-applications-in-production/21325/deployment-using-pm2#t=20161224111450433553 –

回答

0

您首先需要以正確的方式安裝Node。我寫了一個關於它的教程:How to get Node 6.7.0 on Linux(當然,您可以使用更新的版本,只需在命令中更改版本)。

基本上它是這樣的 - 更改版本給你喜歡的人:

# 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 

我建議從源代碼構建節點,並始終運行make test但你也可以安裝一個二進制包這是更快 - 只是讓如果你這麼做的話,你一定要理解路徑和hashbang行的問題 - 關於這個和更多安裝選項的更多信息在my tutorial中描述。

然後,您需要確保每次重新啓動服務器時都啓動應用程序。如果可以,我建議使用Upstart。

使用暴發戶,保存這樣的事情在/etc/init/YOURAPP.conf

# 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 

只要改變:

  • YOURAPP到自己的應用程序
  • /opt/node/bin/node到您的路徑的名稱node
  • /www/YOURAPP/app/app.js到您的Node應用程序的路徑
  • /www/YOURAPP/run到您想要的PID文件
  • /www/YOURAPP/log,如果你希望它爲不同的用戶不是運行在您希望您的日誌
  • --chuid node--chuid OTHERUSERnode

(請務必添加用戶名稱從--chuid以上)

隨着您的/etc/init/YOURAPP.conf到位,您可以安全地重新啓動服務器,並讓您的應用程序仍在運行,您可以運行:

start YOURAPP 
restart YOURAPP 
stop YOURAPP 

啓動,重新啓動並停止您的應用程序 - 這也會在系統啓動或關閉期間自動發生。

欲瞭解更多信息請參閱這些問題的答案約:

您還可以使用systemd爲,但作爲there are some differences系統much more complicated並經常導致some problems

相關問題