利用instsrv和srvany来手动安装服务

利用instsrv和srvany来手动安装服务Windows提供了两个小工具instsrv.exe和srvany.exe来把任何应用包装成windows服务。顾名思义instsrv(installservice)是用来安装服务的,而srvany(serviceanything)包装任何服务的外壳。下载instsrv.exe和srvany.exe.由于nginx的windows应用没有服务,使用起来不太方便,这里趁机利用一下把nginx…

大家好,又见面了,我是你们的朋友全栈君。

Windows提供了两个小工具instsrv.exe和srvany.exe来把任何应用包装成windows服务。顾名思义instsrv(install service)是用来安装服务的,而srvany(service anything)包装任何服务的外壳。下载instsrv.exe和srvany.exe.

由于nginx的windows应用没有服务,使用起来不太方便,这里趁机利用一下把nginx安装成windows服务,步骤如下:

  1. 首先使用instsrv把srvany安装成服务,instsrv的命令格式(instsrv.exe /?):
    Installs and removes system services from NT
    
    INSTSRV <service name> (<exe location> | REMOVE)
      [-a <Account Name>] [-p <Account Password>]
    
      Install service example:
    
        INSTSRV MyService C:\MyDir\DiskService.Exe
        -OR-
        INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo
    
      Remove service example:
    
        INSTSRV MyService REMOVE

    location是完整路径哦。
    因此我的安装命令

    instsrv.exe nginx e:\temp\clean_day\nginx-1.4.7\srvany.exe

  2. 第一步把服务外壳安装好了,这里就要配置这个外壳来执行的真正应用了。这里需要修改注册表
    • 运行Regedit.exe,打开“注册表编辑器”;
    • 依次展开如下子键:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services],在该子键下找到并右击nginx(对应步骤1建立的服务名),选择“新建”下的“项”,将其命名为Parameters。
    • 单击选定Parameters,在右侧窗口中新建一个名为Application的字符串值,将其数值数据设置为nginx服务对应的应用程序绝对路径,比如:E:\temp\clean_day\nginx-1.4.7\nginx.exe;
    • 接着再新建两个字符串值:AppDirectory和AppParameters,AppDirectory指定程序所在的目录,如:E:\temp\clean_day\nginx-1.4.7;
    • AppParameters指明程序运行的参数,如果没有可以不用设值;
  3. 启动服务
    完毕你就可以用net命令启动/停止,或者sc命令配置服务了。
  4. 删除服务
    可以使用instsrv的remove选项来删除服务,当然也可以用sc命令。

如果为了方便,你也可以做成bat文件,包括安装、卸载、启动、停止,甚至于操作注册表。有兴趣的同学自己尝试一下。

转载于:https://www.cnblogs.com/zhaiqianfeng/p/4622561.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134341.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 序列化和反序列化实现

    1.什么是序列化?程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入文件或是将其传输到网络中的另一台计算机上以实现通讯。这个将程序数据转换成能被存储并传输的格式的过程被称

    2021年12月28日
    40
  • C语言数据类型_unint16_t

    C语言数据类型_unint16_tGolang中int,int8,int16,int32,int64和uint区别

    2022年8月15日
    6
  • shell遍历根目录_efi shell 命令中如何返回上级目录和根目录?[通俗易懂]

    shell遍历根目录_efi shell 命令中如何返回上级目录和根目录?[通俗易懂]下面是efishell的帮助信息。你对比看看吧(我看了下,这里的根是\符号)。ThiscommandcdchangesthecurrentworkingdirectorythatisusedbytheEFIShellenvironment.ConventionDescription.Referstothecurrentdir…

    2022年7月24日
    16
  • HashMap currentHashMap总结

    HashMap currentHashMap总结HashMap不同点:(1)JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向延伸,当采用头插法时会容易出现逆序且环形链表死循环问题。但是在JDK1.8之后是因为加入了红黑树使用尾插法,能够避免出现逆序且链表死循环的问题。(2)扩容后数据存储位置的计算方式也不一样:1.在JDK1.7的时候是直接用hash值和需要扩…

    2022年6月18日
    21
  • 使用panel1,切换页面

    使用panel1,切换页面定义变量UserControl1urs1_Control;UserControl2urs2_Control;UserControl3urs3_Control;UserControl4u

    2022年7月3日
    22
  • pytest fixtures_pytest allure

    pytest fixtures_pytest allurefixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号