关于linux想要在后台运行node.js文件,使用xshell6非法关闭窗口后,后台程序不退出的问题
前几天接了一个node的项目,做完后放到我自己的服务器上是可以的,但客户居然使用的是linux系统,当时就有点傻眼了。
我先说说我遇见的坑吧,首先你需要下载 xshell6和xftp6,这个是方便大家传送文件的。然后需要大家安装node
安装可以参考 https://www.cnblogs.com/liuqi/p/6483317.html
然后 大家有两种方法,将自己的程序运行到linux后台上,
第一种 在你的server.js文件所在的目录运行
nohup node server.js >/dev/null 2>&1 &
到此,你的程序就在后台跑起来,如果你乖乖的使用 exit命令关闭Xshell6会话窗口,你运行的程序依然是在后运行,但你强行关闭那就会出问题。
所以你还想要输入一条指令
trap "" HUP
原因大家可以参考这篇文字http://leehomjan.iteye.com/blog/2146739
第二种方法
使用 forever
需要安装forever
npm install forever -g #安装
forever start app.js #启动
forever stop app.js #关闭
但是安装之后需要配置forever,配置太麻烦了,大家可以这样做,
先用命令,查看forever被安装到了什么地方,到到他的路径
npm list -g -depth 0
比如我到到路径就是 /wry/node-v8.11.4-linux-x64/bin/forever
好了,现在你先用cd切换到你server.js所在的目录
然后你就可以这样执行
/wry/node-v8.11.4-linux-x64/bin/forever -w app.js &
同样你也需要添加。
trap "" HUP
到此你就可以放心的将你的xshell关闭了。
我来总结一下,我遇见的坑吧,第一个就是上来就运行安装xshell6和xftp6的问题,然后安装完node后,方向他的同一个IP地址下,有3个不同域名同时占用着80端口。所以,还得更改apache上面的配置文件。也是百度了好多才解决的
大家可以参考一下这篇文字
https://blog.csdn.net/aerchi/article/details/73327093
不过我把他的localhost给成了127.0.0.1,然后好像就好使用。
<VirtualHost *:80>
ServerName 你自己的域名
ServerAlias 你自己的域名
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://127.0.0.1:8080/ //node本地跑在8080端口
ProxyPassReverse http://127.0.0.1:8080/
</Location>
</VirtualHost>
整体来说还是一路百度,一路坑过来了。