node 后台管理插件forever

在一台计算机上手动跑Node项目简单,node xx.js就搞定了,想让Node项目后台运行,虽然不能直接用node命令搞定,但是在安装了forever这个包以后,还是很轻松的。不过要是在远程服务器上构建Node项目,如果没法自启动,一旦服务器重启,那就麻烦了。

那么能否利用forever加启动脚本方式解决上述问题呢?答案当然是肯定的,只不过有点麻烦,而且forever官方缺少详细的配置文档。我在配置的时候也走了一些弯路,下面详细来说。

注:本文的实验环境是Ubuntu Server 12.04 LTS x86_64,在CentOS上的配置更简单一些

最早,我想着试试在/etc/rc.local中增加一句forever start xxx看看,结果发现Ubuntu(其他系统一样)就不鸟我,主要矛盾就是mongodb使用这种方式就可以跑起来,forever就不行,无奈之下,还是从/etc/init.d的角度去考虑吧。

前提是要先把forever好,方法很简单,执行如下命令就好:

?


1

npm install forever -g

安装完成后,用一个简单的Node程序测试一下:

?


1

2

3

forever start test.js

forever stop test.js

forever restart test.js

只要不提示error,就表明forever是可以用的,也就是说用forever来后台开启一个Node项目的基本条件已经具备,剩下的就是来编写一个启动脚本了。

脚本的基本内容如下,感谢原作者的辛勤劳动:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

#!/bin/bash

### BEGIN INIT INFO

# Provides:  xiyoulib

# Required-Start: $all

# Required-Stop: $all

# Default-Start: 2 3 4 5

# Default-Stop:  0 1 6

# Short-Description: Start daemon at boot time

# Description:  Enable service provided by daemon.

### END INIT INFO

# chkconfig: 345 88 08

# description: Forever for Node.js

DEAMON=/node.js/XiyouLibNodeExpress/bin/www  #这里需要填写你自己的Node项目的启动脚本文件

LOG=/node.js/log/log #可选,日志文件目录

PID=/node.js/pid #必填内容,用于记录forever的进程号

export PATH=$PATH:/usr/local/bin #在这里指定一下Node的可执行程序安装目录,我的是/usr/local/bin

export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules #这里是Node类库的路径

#往下的内容就不用修改了

node=node

forever=forever

case "$1" in

 start)

  $forever start -l $LOG --pidFile $PID -a $DEAMON

  ;;

 stop)

  $forever stop --pidFile $PID $DEAMON

  ;;

 stopall)

  $forever stopall --pidFile $PID

  ;;

 restartall)

  $forever restartall --pidFile $PID

  ;;

 reload|restart)

  $forever restart -l $LOG --pidFile $PID -a $DEAMON

  ;;

 list)

  $forever list

  ;;

 *)

  echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"

  exit 1

  ;;

esac

在这里提醒一下:最好为Node项目单独在根目录下建立一个目录,如/node.js,然后权限设为754,这样可以避免一些权限问题而造成的麻烦!

由于用的是Ubuntu Server系统,上面还配置了MongoDB的启动服务,而且在其init.d的脚本中加入了以下的语句:

?


1

2

# Required-Start:  $all

# Required-Stop:   $all

所以在以后自己添加的时候系统会提示错误,所以在Node项目的启动脚本里我加了前面一串的说明注释,以便Ubuntu Server系统进行设置,如果在CentOS上,应该不会出现类似的问题,这点要特别注意!

即以下的说明信息:

?


1

2

3

4

5

6

7

8

9

### BEGIN INIT INFO

# Provides:     xiyoulib

# Required-Start:  $all

# Required-Stop:   $all

# Default-Start:   2 3 4 5

# Default-Stop:   0 1 6

# Short-Description: Start daemon at boot time

# Description:    Enable service provided by daemon.

### END INIT INFO

脚本编辑完成后使用chkconfig --list指令查看一下自己添加的服务是否生效,即3和5全部要为on才可以实现开机自启动。

如果3和5没有被置为on,那么请执行chkconfig --level 35 [你的服务名] on即可,Ubuntu Server可能会报一些warning,但是只要能将所需设置的服务的3、5变为on,其他的错误可以忽略(我感觉这是系统自己的事)。

设置完成后即可实现Node项目在Linux上的自启动,可以shutdown -r now试一下能否自启,启动好以后直接去访问一下你设定的端口号、虚拟目录神马的,如果出来想要的就大功告成了!

但是如果不对,就好好检查一些脚本,然后根据报错进行相关修改,毕竟我也是试出来的嘛!

时间: 2024-10-10 00:48:37

node 后台管理插件forever的相关文章

magento移动端后台管理插件mobile Admin by snm portal

Magento mobile Admin 通过手机自动(的iPhone,iPad,Android手机或PC / Mac的),你的库存和产品价格. 定义属性,条形码编号和分配给您的产品.打开mobileAdmin和去库存.使用USB或蓝牙扫描条形码扫描和轻松改变你的股票. 安装扩展,并呼吁通过HTTP接口:// [你的店铺] / mobile_admin 演示(Magento的1.9): http://demo.snm-portal.de/snm(演示/ demo123) http://demo.

wordpress——在插件后台管理页面中添加javascript和ajax

最近在开发一个wordpress插件,需要在插件的后台管理页面上,添加自己写的javascript文件,以达到一些功能. 查了好几天的文档和资料,终于实现了. 这里先介绍下wordpress后台页面添加javascript的过程,再介绍添加ajax的过程. 添加javascript 首先我们需要知道wordpress插件开发的框架,然后再介绍javascript添加的步骤. 添加插件设置页面 开发插件,总需要在管理后台添加自己的插件设置页面.插件设置子页面,在这些页面中,可以设置和保存插件的一些

黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户、主题、插件、设置等功能

建立好了子站,我们需要有个地方配置所有子站的主题.插件等功能,我们可以在后台看到 我的站点--管理网络 如下图: 在 管理网络--仪表盘 里面,我们可以创新用户和站点,也提供了查询功能. 要注意的是:当你新上传的主题或者插件,都需要在管理网络那边的主题和插件里面将你上传的主题和插件开启.这样才可以在你的子站点中查看的到. 黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户.主题.插件.设置等功能

Sweetalert模态对话框插件与AdminLTE后台管理模板地址

Sweetalert纯JS模态对话框插件地址:http://mishengqiang.com/sweetalert/ AdminLTE后台管理模板系统地址:https://adminlte.io/ 原文地址:https://www.cnblogs.com/jingxuan-li/p/9478260.html

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统.微信应用.微信小程序.APP等方面,都可以直接调用基于JSON数据格式的Web API接口,在我之前的几篇随笔中,对这方面都有一定的介绍,本篇继续这个主题,细致深入的阐述如何在接口和源码的基础上整合Web API.微信后台管理及前端微信小程序的应用方案. 1.基于Web API的微信开发框架 首先我们各个业务模块,都应该围绕着Web API进行展开,

Vue Admin - 基于 Vue & Bulma 后台管理面板

Vue Admin 是一个基于 Vue 2.0 & Bulma 0.3 的后台管理面板(管理系统),相当于是 Vue 版本的 Bootstrap 管理系统,提供了一组通用的后台界面 UI 和组件,其中还有丰富的图表组件,开箱即用.赶紧来体验一下吧. 在线演示      免费下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很实用的10个效果[

后台管理UI

后台管理UI 目录 一.EasyUI 二.DWZ JUI 三.HUI 四.BUI 五.Ace Admin 六.Metronic 七.H+ UI 八.Admin LTE 九.INSPINIA 十.LigerUI 十一.其它UI 十二.总结 最近要做一个企业的OA系统,以前一直使用EasyUI,一切都好,但感觉有点土了,想换成现在流行的Bootstrap为基础的后台UI风格,想满足的条件应该达到如下几个: 1.美观.大方.简洁 2.兼容IE8.不考虑兼容IE6/IE7,因为现在还有很多公司在使用Wi

WordPress 在后台管理菜单中使用Dashicons图标

主题或插件开发者,也应该与时俱进,今天就简单说说如何在后台管理菜单中使用Dashicons图标. 关于 Dashicons Dashicons 是一个开源的字体图标项目,目前托管于 GitHub,目前主要用于 WordPress 后台,当然, 你也可以在自己的主题或插件中使用.更多的介绍,请访问http://melchoyce.github.io/dashicons/.你可以点击任何一个图标,然后就可以获取它对应的 HTML.CSS 或 Glyph 调用方法. 在菜单中使用 Dashicons

后台管理UI的选择

后台管理UI的选择 目录 一.EasyUI 二.DWZ JUI 三.HUI 四.BUI 五.Ace Admin 六.Metronic 七.H+ UI 八.Admin LTE 九.INSPINIA 十.LigerUI 十一.FineUI 十二.其它UI 十三.总结 最近要做一个企业的OA系统,以前一直使用EasyUI,一切都好,但感觉有点土了,想换成现在流行的Bootstrap为基础的后台UI风格,想满足的条件应该达到如下几个: 1.美观.大方.简洁 2.兼容IE8.不考虑兼容IE6/IE7,因为