首页 文章

将批处理文件作为Windows服务运行

提问于
浏览
122

为了运行一个应用程序,必须启动一个批处理文件(这可以启动Jetty,显示实时日志等) . 仅当此批处理文件正在运行时,该应用程序才有效 . 因此我被迫让这个批处理文件运行,而不是从Windows服务器注销 .

此批处理文件可以作为服务运行吗?我正在试验similar question中的一个建议 .

7 回答

  • 0

    正如Doug Currie所说,使用RunAsService .

    根据我过去的经验,您必须记住您生成的服务

    • 有一组完全不同的环境变量
      必须仔细检查
    • 的权利/许可问题
      如果
    • 打开要求任何类型输入的对话框,则可能会造成严重破坏

    不确定最后一个是否仍然适用...这是我前一段时间工作过的一个大夜晚的母马 .

  • 113

    为什么不简单地将其设置为计划在启动时运行的计划任务?

  • 3

    无需额外的软件 . 使用任务计划程序 - >创建任务 - >隐藏 . 隐藏的复选框位于左下角 . 将任务设置为在登录时触发(或您喜欢的任何条件),然后在操作选项卡中选择任务 . 将其隐藏起来可确保任务在后台静默运行,就像服务一样 .

    请注意,您还必须将程序设置为“无论用户是否登录”,或者程序仍将在前台运行 .

  • 57

    有一个内置的Windows cmd来执行此操作:sc create . 不像nssm那样华丽,但你不必下载额外的软件 .

    sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]
    

    注意

    • start = demand表示您必须自己启动服务
      = 之后需要

    • 空格

    • 我在服务启动时遇到错误,服务没有及时响应,但很明显服务已成功运行.bat . 还没有挖到这个但是thread经历了同样的事情并使用nssm来解决它来安装服务 .

  • 3

    虽然它不是免费的(但是39美元),FireDaemon对我来说效果很好,我不得不推荐它 . 它将运行您的批处理文件,但具有许多其他非常有用的功能,例如调度,服务监视,基于GUI或XML的服务安装,依赖项,环境变量和日志管理 .

    我开始使用FireDaemon来启动JBoss应用程序服务器( run.bat ),但很快意识到FireDaemon配置功能的丰富性让我放弃批处理文件并在FireDaemon服务定义中重新创建其命令的意图 .

    还有一个名为Trinity的SUPER FireDaemon,如果你有大量的Windows服务器来管理这项服务(或者从技术上讲,任何服务),你可能会想看看它 .

  • 2

    NSSM完全免费且超级简单,以管理员身份运行命令提示符/终端:

    nssm install "YourCoolServiceNameLabel"
    

    然后会出现一个对话框,您可以选择要运行的文件的位置 .

    卸载

    nssm remove "YourCoolServiceNameLabel"
    
  • 0

    AlwaysUp可以轻松地将批处理文件作为服务运行 . 它类似于FireDaemon(如上所述)并且不是免费的,但您可能会发现丰富的功能集在专业环境中是一种资产 .

    祝好运!

相关问题