NSSM使用说明


1、说明
    NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:

    支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
    安装简单,修改方便
    可以重定向输出(并且支持Rotation)
    可以自动守护封装了的服务,程序挂掉了后可以自动重启
    可以自定义环境变量
    这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。

    开发的时候是一个普通程序,降低了开发难度,调试起来非常方便
    安装简单,并且可以随时修改服务属性,更新也更加方便
    可以利用控制台输出直接实现一个简单的日志系统
    不用考虑再加一个服务实现服务守护功能

2、下载地址
    https://nssm.cc/download
    
    https://nssm.cc/release/nssm-2.24.zip

 

3、使用说明
    此处我们以将Kafka设置为Windows系统服务为例子进行展示,具体可参考我的文章https://blog.csdn.net/qubernet/article/details/104718033

        将Kafka设置为Windows系统服务
            打开NSSM的win64的文件夹,如D:\Net_业务软件\Net_NSSM\nssm-2.24\win64,然后按住Shift+鼠标右键点击文件夹空白处,选择“在此处打开Powershell窗口”

            然后输入.\nssm install调出设置窗体
            在弹出的窗体中,Application选项卡中,
                Path:选择kafka-server-start.bat所在的路径,如D:\Net_Program\Net_Kafka\bin\windows\kafka-server-start.bat
                Startup directory:选择Path后,Startup directory选择会自动填充
                Argument:为启动服务的参数,此处填写D:\Net_Program\Net_Kafka\config\server.properties
                Service name:服务名称,如Kafka-Service
            设置完成后点击Install service按钮即完成,此时去查看系统服务有多了一个叫Kafka-Service的服务了


        
4、NSSM常用命令
    安装服务:nssm install 服务名
    删除服务:nssm remove 服务名
    删除服务确定:nssm remove 服务名 confirm 
    修改服务(显示界面修改):nssm edit 服务名
    启动服务:nssm start 服务名
    停止服务:nssm stop 服务名
    重启服务:nssm restart 服务名

    更多命令请参考官网说明:https://nssm.cc/commands


    
5、参考文档
    使用NSSM将exe封装为服务:https://www.cnblogs.com/TianFang/p/7912648.html
    Windows使用NSSM将任意exe封装为服务:https://gofinall.com/81.html
    如将Kafka打包为Windows服务:https://www.cnblogs.com/xuerong/p/9699950.html

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值