2016-09-27 28 views
1

我在Windows Server 2012R2上运行。当用户通过设置运行键登录时,在后台运行Windows Node.js脚本

我有一个node.js脚本,我想在用户执行登录时运行。

为此,我将命令设置为在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册表路径中运行。

我设置命令:

/path/to/node/node /path/to/node/script args 

这工作得很好,但它会催生出命令的输出终端,而我想在后台运行此命令,并从任何命令终端分离。

我试着来代替以前的命令: 启动/ B /路径/到/节点/节点/路径/到/节点/脚本ARGS

但在这种情况下,没有证据表明该剧本甚至开始。

我还试图在一个.BAT脚本来包装下面的命令:

开始\ b节点脚本ARGS

设置在Run键脚本的名称:在这种情况下,我可以看到终端闪光,但后来脚本不再运行(我想脚本被执行,但只要父进程终止,它就会停止)。

我想避免在Windows服务中转换脚本,只要一个简单的解决方案是可能的。

只要满足我的要求(当用户登录时在后台运行脚本),不使用运行注册表项的解决方案也很好。

回答

1

其实这是很容易,使用forever.js模块

安装模块使用

forever start main.js”后

将开始运行作为后台进程

+1

我确实能够永久使用.js,但我必须在注册表项中指定完整路径,例如:'C:\ Users \ Administrator \ AppData \ Roaming \ npm \永远启动...'。我还注意到在任务管理器中看到两个与节点相关的进程之前,闪烁的终端(立即消失)。 我想这个解决方案可以被认为是可以接受的,谢谢。 – NoUserFound