启动时自动启动node.js服务器
任何node.js专家都可以告诉我如何在我的机器启动时configuration节点JS来自动启动服务器? 我在Windows上
这完全不是在node.js中configuration的东西,这纯粹是操作系统的责任(Windows是你的情况)。 最可靠的方法是通过Windows服务。
有这个超级简单的模块,将节点脚本安装为一个Windows服务,它被称为node-windows ( npm , github , documentation )。 我以前用过,像魅力一样工作。
var Service = require('node-windows').Service; // Create a new service object var svc = new Service({ name:'Hello World', description: 'The nodejs.org example web server.', script: 'C:\\path\\to\\helloworld.js' }); // Listen for the "install" event, which indicates the // process is available as a service. svc.on('install',function(){ svc.start(); }); svc.install();
PS
我发现这个东西非常有用,所以我创build了一个更易于使用的包装( npm , github )。
安装它:
npm install -g qckwinsvc
安装您的服务:
> qckwinsvc prompt: Service name: [name for your service] prompt: Service description: [description for it] prompt: Node script path: [path of your node script] Service installed
卸载您的服务:
> qckwinsvc --uninstall prompt: Service name: [name of your service] prompt: Node script path: [path of your node script] Service stopped Service uninstalled
如果你在Linux * pm2是你的朋友。 这是一个处理群集的stream程pipe理器。
你安装它:
npm install -g pm2
启动一个例如3个进程的集群:
pm2 start app.js -i 3
并让pm2在启动时启动它们:
pm2 startup
它有一个API,甚至一个http界面 :
去github并阅读说明 。 它很容易使用,非常方便。 永远最好的事情。
*开发人员在Ubunto和CentOs上尝试过,但是我已经在Debian中使用了,没有任何问题。 你可以用这个来检查它是否对你有效:
git clone https://github.com/Unitech/pm2.git cd pm2 npm install # Or do NODE_ENV=development npm install if some packages are missing npm test
如果我没有错,可以使用命令行来启动应用程序,也可以使用batch file。 在这种情况下,用Windowslogin启动它并不是一件非常困难的事情。
您只需创build一个包含以下内容的batch file:
node C:\myapp.js
并保存.bat扩展。 这里myapp.js是你的应用程序,在这个例子中,它位于C:驱动器(spcify的path)。
现在,您可以将该batch file放在位于C:\ Users \%username%\ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup的启动文件夹中
只需在运行dailog框中使用%appdata%打开它并find> Roaming> Microsoft> Windows>开始菜单>程序>启动
该batch file将在login时执行,并从cmd启动您的节点应用程序。
我build议安装node.js应用程序作为Windows服务,然后将服务设置为在启动时运行。 这应该使通过使用Windows服务pipe理单元来控制启动操作变得容易一些,而不必在“启动”文件夹中添加或删除batch file。
Stackoverflow中的另一个与服务相关的问题提供了一些(当然)非常好的选项。 检出如何将node.js安装为Windows服务 。 节点窗口看起来很有希望给我。 另外,我使用类似的工具来运行需要作为服务运行的Java应用程序。 这使我的生活变得更加简单。 希望这可以帮助。
除了Windows任务计划程序,您不需要任何其他的东西。 只需在启动时创build一个计划任务,并运行它,无论指定的用户是否login。 这个任务应该调用一个batch file,它包含:
cd C:\project\root call C:\Users\[COMPUTER_NAME]\AppData\Roaming\npm\forever.cmd start server.js exit 0
这是我在C#中编写的另一个解决scheme ,用于在Windows上自动启动本地节点服务器或pm2服务器。
使用pm2在Windows上启动并运行你的nodejs进程。
请务必阅读本github讨论如何设置任务计划程序启动pm2: https : //github.com/Unitech/pm2/issues/1079
直接从这个答案复制:
你可以使用任何你想自动化的语言编写一个脚本(甚至使用nodejs),然后在用户的%appdata%\ Microsoft \ Windows \ Start Menu \ Programs \ Startup文件夹中安装该脚本的快捷方式
- 如何将用户的浏览器URLredirect到Nodejs中的不同页面?
- 使用节点框架运行简单的JavaScript时出错
- mongoosevs mongodb(nodejs modules / extensions),哪个更好? 为什么?
- 在“字段列表”中将未知列“* .createdAt”
- 为什么在Node.js REPL中调用一个函数)(工作?
- 捆绑的依赖优于NPM中的正常依赖
- 如何禁用用于file upload的Express BodyParser(Node.js)
- 如何使用Node.js,Express和Mongoose进行身份validation?
- 为什么build议不要在Node.js代码中的任何地方closuresMongoDB连接?