转载地址:http://www.grati.org/?p=236

应lemonhall要求,写一篇在windows中部署nodejs程序的文章,并提供了how to node上 “deploying-node-with-spark(如何使用spark部署node)“文章的链接(非常感谢lemonhall),今天有空正好说一下。

nodejs编写的应用大都是网络服务,所以还是十分有必要使其能够按照deamon的方式执行的。我对“以deamon方式执行”有两点理解:1:能够给实现开机自动执行,且无需用户登录。2:deamon程序的有效用户ID和组ID(决定deamon权限)一般不是计算机的常用操作账户。  要想使应用程序在windows中以deamon方式执行,只需将其注册为系统服务即可。在WindowsNT资源工具包中提供了两个小工具Instrsrv.exe和Srvany.exe,按照微软官方的说法这两个小程序支持WinNT和Win2K,不过经过网上搜到的结果来看,他们同样可以运行在XP上(至于WinServer2008能不能用,有条件的帮忙试一下)。 具体部署的方法,我转载一篇Slyar的文章win下开机不登陆系统自动运行程序,就不再重新写了。

最后说一点我的观点,在windows中,nodejs是通过cygwin的中间层运行的,所以性能和稳定性应该都不能和类Unix平台的原生程序相比。在Windows中使用nodejs应该只是调试目的,在生产环境稳定和性能第一,方便行就可以稍微牺牲一点。所以在生产环境还是部署在LinuxServer上比较好一点。

PPS:在说一点我对nodejs编程方法的理解:nodejs程序没有好用的调试器,习惯vs的朋友可能会觉得非常别扭,其实把单元测试细化,每实现一个功能甚至每写一个函数都可以测试一下,看看函数有没有按照期待的方式工作。还有,一定要把日志输出清楚。这样,编写程序就可以完全不用调试器,而且代码质量还能够提高,最后算算,开发速度不见得会变慢。

如下的服务注册方法:

Windows NT Resource Kit 提供了2个小工具可以帮助我:

Instrsrv.exe installs and removes system services from Windows NT.

Srvany.exe allows any Windows NT application to run as a service.

Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。下面我来说具体安装过程。

1、将Instsrv.exe和Srvany.exe放置到某目录下,下面用%path%代替路径

2、打开CMD,输入以下内容,其中ServerName为你要创建的服务名称

%path%\instsrv ServerName %path%\srvany.exe

3、打开regedit注册表编辑器,找到以下目录

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServerName>

4、鼠标右键单击<ServerName>,创建一个”项”,名称为”Parameters”

5、鼠标左键单击”Parameters”,在右边点击鼠标右键,创建一个”字符串值”(REG_SZ),名称为”Application”,数值数据里填写你要执行的程序完整路径。

6(可选)、鼠标左键单击”Parameters”,在右边点击鼠标右键,创建一个”字符串值”(REG_SZ),名称为”DependOnService”,数值数据里填写该服务依存的服务名称。不知道依存是什么的,你可以保持继续不知道,我不解释。

7、打开services.msc服务控制面板,找到<ServerName>,鼠标右键-属性-登陆,勾选”允许服务与桌面交互”(一般你要运行的程序都是有界面的吧)。 恩,一般这样就可以了。

文中提到的两个小工具下载。

注册nodejs程序为windows服务的更多相关文章

  1. 如何注册java程序为windows服务

    如何注册java 程序为windows 服务 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在 ...

  2. 黄聪:使用srvany.exe将任何程序作为Windows服务运行

    srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说sr ...

  3. 使用srvany.exe将任何程序作为Windows服务运行

    使用srvany.exe将任何程序作为Windows服务运行 2011 年 3 月 7 日 !本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使 ...

  4. 如何把一个c语言程序做成windows服务开机自启动

    原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...

  5. srvany把程序作为Windows服务运行

    srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说sr ...

  6. Java Service Wrapper 发布Java程序为Windows服务

    下载Windows版本:https://www.krenger.ch/blog/java-service-wrapper-3-5-37-for-windows-x64/ 转自:F:\java\bhGe ...

  7. 利用JAVA Service Wrapper把JAVA程序做成windows服务

    今天做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式. ...

  8. 将控制台程序做成windows服务

    一:添加windows服务 二:修改XXXInstaller1的StartType=Automatic,修改ProcessInstaller1的Account=LocalSystem 三:在progr ...

  9. 把java程序作为windows服务运行

    参考: https://www.jianshu.com/p/fc9e4ea61e13 https://blog.csdn.net/qq_28566071/article/details/8088250 ...

随机推荐

  1. led驱动程序设计

    LED的驱动程序很简单,按照张字符型设备驱动设计方法顺下来即可实现,这里主要讲几个注意事项. 一.在linux系统中,操作硬件不能够使用物理地址,一定要用虚拟地址.将物理地址转化为虚拟地址的函数如下: ...

  2. POJ1017 packets

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 48911   Accepted: 16570 Descrip ...

  3. Misha and Changing Handles

    Description Misha hacked the Codeforces site. Then he decided to let all the users change their hand ...

  4. Hadoop生态圈技术图谱

    当下Hadoop已经成长为一个庞大的体系,貌似只要和海量数据相关的,没有哪个领域缺少Hadoop的身影,下面是一个Hadoop生态系统的图谱,详细的列举了在Hadoop这个生态系统中出现的各种数据工具 ...

  5. Truncate Table 用法

    TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删除其全部行的表的名称. 注释 TRUNC ...

  6. 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看

    http://www.pc841.com/shoujizhishi/39882.html http://news.mydrivers.com/1/359/359443.htm 魅族发布首款千元高性价比 ...

  7. GitHub托管BootStrap资源汇总

    MESSENGER替换alert()消息和其他用户交互通知. JQUERY.TOCIFY.JS可以用Bootstrap或jQueryUI主题的Jquery表格组件. BOOTSTRAP-PROMPTS ...

  8. Factorization Machines 学习笔记(三)回归和分类

      近期学习了一种叫做 Factorization Machines(简称 FM)的算法,它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...

  9. 大数据笔记09:大数据之Hadoop的HDFS使用

    1. HDFS使用: HDFS内部中提供了Shell接口,所以我们可以以命令行的形式操作HDFS

  10. Python 正则表达试

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦, ...