我正在做一个聊天应用并将其集成到网站上。当我在本地服务器上执行teh命令'node index.js'时,一切正常。但是,当我尝试在专用服务器上安装节点js并尝试执行命令'nohup node index.js&'时通过ssh,它给出了以下信息。
nohup:忽略输入并将输出附加到“nohup.out”
我已按照此站点中提到的方法在服务器https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts
上安装节点js有人可以帮帮我吗?
答案 0 :(得分: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
我建议从源代码构建Node并始终运行make test
但你也可以安装更快的二进制包 - 只要确保你了解路径和hashbang行的问题,如果你这样做了 - 更多信息my tutorial中描述了更多安装选项。
然后,您需要确保每次重新启动服务器时都启动应用程序。如果可以,我建议使用Upstart。
使用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 OTHERUSER
,如果您希望以node
(确保添加名称来自上面--chuid
的用户)
在您的/etc/init/YOURAPP.conf
到位后,您可以安全地重新启动服务器并让您的应用仍在运行,您可以运行:
start YOURAPP
restart YOURAPP
stop YOURAPP
启动,重启和停止你的应用程序 - 这也会在系统启动或关闭期间自动发生。
有关详情,请参阅以下有关的答案:
您也可以使用systemd,但there are some differences系统为much more complicated,并且通常会导致some problems。