注册nodejs程序为windows服务
转载地址: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服务的更多相关文章
- 如何注册java程序为windows服务
如何注册java 程序为windows 服务 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在 ...
- 黄聪:使用srvany.exe将任何程序作为Windows服务运行
srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说sr ...
- 使用srvany.exe将任何程序作为Windows服务运行
使用srvany.exe将任何程序作为Windows服务运行 2011 年 3 月 7 日 !本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使 ...
- 如何把一个c语言程序做成windows服务开机自启动
原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...
- srvany把程序作为Windows服务运行
srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说sr ...
- Java Service Wrapper 发布Java程序为Windows服务
下载Windows版本:https://www.krenger.ch/blog/java-service-wrapper-3-5-37-for-windows-x64/ 转自:F:\java\bhGe ...
- 利用JAVA Service Wrapper把JAVA程序做成windows服务
今天做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式. ...
- 将控制台程序做成windows服务
一:添加windows服务 二:修改XXXInstaller1的StartType=Automatic,修改ProcessInstaller1的Account=LocalSystem 三:在progr ...
- 把java程序作为windows服务运行
参考: https://www.jianshu.com/p/fc9e4ea61e13 https://blog.csdn.net/qq_28566071/article/details/8088250 ...
随机推荐
- XML在数据传输哪些方面会比JSON有优势,在哪些领域更加适合?
XML 跟 JSON 的圣战,或许会成为自 vim/emacs 圣战,cli/gui 圣战等等圣战以来的又一个圣战,而所有的圣战大抵都不会有结果,因为每方都有各自的道理,谁都不服谁. 在我看来,XML ...
- In App Purchases(IAP 应用程序內购买): 完全攻略
原文: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ 参考: http://www.cocoachina ...
- BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换
1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 493 Solved: 2 ...
- delphi7编写客户端调用java服务器端webservice示例
1. 首先取得java-webservice服务器端地址.我的是:http://localhost:8080/mywebservice/services/mywebservice?wsdl 2. 然后 ...
- linux下编译eXosip、osip,以及UAC和UAS的例子
从网站上看到了这样的一篇博文 :Windows下编译eXosip.osip,以及UAC和UAS的例子 (链接:http://www.cnblogs.com/dyllove98/archive/2013 ...
- Mac OS X Shell 脚本和终端命令
系统 重启 Mac OS X: 1 shutdown - r now 关闭 Mac OS X: 1 shutdown now 电源管理/省电 获取当前电源管理设置的信息 1 pmset -g 设置显示 ...
- 聚聚科技---PHP开发笔试题及答案
1. echo(), print(), print_r()的区别? echo是PHP语言结构, print和print_r是函数.语言结构没有返回值,函数可以有返回值(即便没有用) . print( ...
- html中显示xml
在工作中经常会遇到一些特殊的要求,比如在html中显示xml,xml的格式跟html很相似,同样包含了标签.属性.值,所以xml的标签等内容会在html中被转义 如果要在html中让xml的内容(包括 ...
- 玩转iOS开发 - 数据缓存
Why Cache 有时候.对同一个URL请求多次,返回的数据可能都是一样的,比方server上的某张图片.不管下载多少次,返回的数据都是一样的. 上面的情况会造成下面问题 (1)用户流量的浪费 (2 ...
- 关于 视频同步vsync 信号在不同一时候钟域採样问题
今天调试 视频 4k(3840 x 1920)的vsync信号(时钟为 297Mhz) 进入 170Mhz 的时钟域, 发现输出来的信号信号抖动特别厉害.后来才发现这是不同一时候钟域 造成的影响. 快 ...