• 使用NSSM安装.exe文件成Windows服务(.bat文件操作)


    写在前面的话:

    之前查到的nssm安装Windows服务都是用 nssm install <servicename> ,但是会弹出窗口,需要填写路径参数

    下面介绍一种,直接使用.bat命令就可以实现的安装方式(本文使用的.exe文件是,.net core项目发布的一个网站项目,其他的应该也是一样的原理

    1、下载nssm, download

    2、解压后,把nssm.exe文件复制到,发布完项目的文件夹里(就是放.exe文件的那个文件夹)

    3、创建install.bat文件(名字随便取都可以),文件中内容

    @ echo off
    
    @echo 添加环境变量
    set mypath=%~dp0
    set path=%mypath%;%path%
    
    
    @echo 开始安装【GDSM服务】
    call nssm install GDSMService %~dp0GDSMPlateForm.exe
    
    echo wscript.sleep 5000 > delay.vbs 
    cscript //nologo delay.vbs & del delay.vbs 
    @echo 开始启动【GDSM服务】
    call nssm start GDSMService
    
    pause

    4、右键install文件,创建快捷方式(快捷方式名字随便取),修改为管理员权限打开

     5、双击打开快捷方式,就会自动安装服务,并开启服务

    6、查看服务

     7、(如果需要)删除服务,建议先关闭服务,再删除

    1)管理员身份打开cmd,删除命令:sc delete 服务名  如:sc delete GDSMService

    注意:

    1)在执行nssm命令之前,一定要先添加nssm.exe的环境变量,否则会出下“找不到nssm命令”

    2)安装服务和启动服务要使用call,不能用start或者不写,否则也会出现“找不到nssm命令”,原因是使用start或者不写,添加的环境变量没有立即生效

    这里被坑了很久,之前都是不写【nssm install GDSMService】,然后发现环境变量一直不生效,也试过重启explorer,都不行

    3)添加环境变量(临时环境变量,等服务安装完成,环境变量不存)

    @echo 添加环境变量
    set mypath=%~dp0
    set path=%mypath%;%path%


    总结:nssm安装服务不弹出弹窗的命令就是(可以直接在cmd中执行):nssm install GDSMService <路径>,但是使用当前文件夹路径的时候,就需要先添加环境变量

    比方说:
    nssm install GDSMService C:WindowsSetupDSMPlateForm.exe 完全没问题
    但是,如果想要使用当前文件夹的路径呢?
     正常应该是这样的, nssm install GDSMService %~dp0GDSMPlateForm.exe  然而就是不行(猜测原因:应该是nssm没有在环境变量里面,没有资格使用系统的变量%~dp0)
    解决办法:先添加nssm.exe的环境变量就可以了
  • 相关阅读:
    Max关闭WPF
    InstallShield安装过程介绍
    InstallShield相关资料整理
    .net reflection的一点研究
    (转)VMware增加磁盘容量方法
    领域驱动设计《读书笔记》
    《领域驱动设计C#2008实现》读书笔记
    深入研究c++对象模型
    <转载>com之包容聚合
    基于插件开发的架构研究
  • 原文地址:https://www.cnblogs.com/wangxiaorang/p/14850266.html
Copyright © 2020-2023  润新知