zoukankan      html  css  js  c++  java
  • 使用forever运行nodejs应用

    1. 使用forever运行nodejs应用  
    2. 何为forever  
    3.   
    4. forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。  
    5.   
    6. 官方的说明是说:  
    7.   
    8. A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).  
    9. // 一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具  
    10.   
    11. Github地址:https://github.com/nodejitsu/forever  
    12. 用途  
    13.   
    14. forever的用途就是帮我们更好的管理我们node App服务,本质上就是在forever进程之下,创建一个node app的子进程。  
    15.   
    16. 比如,你有一个基于express的或者其他的一些个应用那么,它将会很方便你更新和操作你的服务,并且保证你服务能持续运行。  
    17.   
    18. 更好的一点就是每次更改文件,它都可以帮你自动重启服务而不需要手动重启。  
    19. 安装forever  
    20.   
    21. // 记得加-g,forever要求安装到全局环境下  
    22. sudo npm install forever -g  
    23.   
    24. forever使用说明  
    25. 启动相关  
    26.   
    27. // 1. 简单的启动  
    28. forever start app.js  
    29.   
    30. // 2. 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log  
    31. forever start -l forever.log app.js  
    32.   
    33. // 3. 指定app.js中的日志信息和错误日志输出文件,  
    34. //  -o 就是console.log输出的信息,-e 就是console.error输出的信息  
    35. forever start -o out.log -e err.log app.js  
    36.   
    37. // 4. 追加日志,forever默认是不能覆盖上次的启动日志,  
    38. //  所以如果第二次启动不加-a,则会不让运行  
    39. forever start -l forever.log -a app.js  
    40.   
    41. // 5. 监听当前文件夹下的所有文件改动  
    42. forever start -w app.js  
    43.   
    44. 文件改动监听并自动重启  
    45.   
    46. // 1. 监听当前文件夹下的所有文件改动(不太建议这样)  
    47. forever start -w app.js  
    48.   
    49. 显示所有运行的服务  
    50.   
    51. forever list  
    52.   
    53. 停止操作  
    54.   
    55. // 1. 停止所有运行的node App  
    56. forever stopall  
    57.   
    58. // 2. 停止其中一个node App  
    59. forever stop app.js  
    60. // 当然还可以这样  
    61. // forever list 找到对应的id,然后:  
    62. forever stop [id]  
    63.   
    64. 重启操作  
    65.   
    66. 重启操作跟停止操作保持一致。  
    67.   
    68. // 1. 启动所有  
    69. forever restartall  
    70.   
    71. 更多一些  
    72.   
    73. 上面的一些解释足够平常使用,还有待之后继续补充。  
    74. 开发和线上建议配置  
    75.   
    76. // 开发环境下  
    77. NODE_ENV=development forever start -l forever.log -e err.log -a app.js  
    78. // 线上环境下  
    79. NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js  
    80.   
    81. 上面加上NODE_ENV为了让app.js辨认当前是什么环境用的。不加它可能就不知道哦?  
    82. 一些注意点  
    83.   
    84. 有可能你需要使用unix下的crontab(定时任务)  
    85.   
    86. 这个时候需要注意配置好环境变量。  
    87.   
    88. SHELL=/bin/sh  
    89. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
    90.   
    91. 后记  
    92.   
    93. 毋庸置疑,拥有了Github就拥有了世界。  
    94. 参考  
    95.   
    96.     https://github.com/nodejitsu/forever  
    97.     http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever  
    98.     https://github.com/nodejitsu/forever/issues/116  
  • 相关阅读:
    堆与堆排序
    利用openssl进行RSA加密解密
    [转载]编辑器圣战
    七月底的小结
    计算机是怎么样工作的?
    Linux进程地址空间之初探:一
    微软2013暑期实习笔试回忆
    微软编程之美资格赛
    微软编程之美初赛
    rootkit:实现隐藏进程
  • 原文地址:https://www.cnblogs.com/jayruan/p/7966921.html
Copyright © 2011-2022 走看看