Windows下将nginx等可执行文件添加为服务

Windows下将nginx等可执行文件添加为服务

  • 为什么将可执行文件添加为服务?
  • 将可执行文件添加为服务的步骤
    • 步骤 1:下载和安装 Nginx
    • 步骤 2:添加为服务
      • 方法一:使用 Windows 自带的 sc 命令
      • 方法二:使用 NSSM(Non-Sucking Service Manager)
      • 方法三 :使用 WinSW
    • 步骤 3:启动和管理服务
    • 其他:删除服务

在这里插入图片描述

为什么将可执行文件添加为服务?

将可执行文件添加为服务有以下几个优势:

  1. 自动启动: 可以在系统启动时自动启动这些服务,无需手动干预。
  2. 稳定性: 以服务方式运行的应用程序通常会更稳定,因为它们在独立的进程中运行,不受用户登录状态的影响。
  3. 后台运行: 服务以后台方式运行,不会占用用户界面的空间,适合服务器环境。
  4. 远程管理: 可以通过服务管理工具轻松管理和监控这些服务。

将可执行文件添加为服务的步骤

这里我们使用Nginx作为一个例子,其他的可执行文件都是同理。

步骤 1:下载和安装 Nginx

前往 Nginx 官方网站下载 Windows 版本的 Nginx 可执行文件。
解压下载的文件到一个目录,例如 C:\nginx\。

步骤 2:添加为服务

方法一:使用 Windows 自带的 sc 命令

  1. 打开命令提示符(以管理员权限运行)。

  2. 使用以下命令将 Nginx 添加为服务:

    sc create Nginx binPath= "C:\nginx\nginx.exe -g \"daemon off;\"" DisplayName= "Nginx" start= auto
    

在此示例中,Nginx 是服务的名称,C:\nginx\nginx.exe -g “daemon off;” 是 Nginx 可执行文件的完整路径和启动参数,Nginx 是服务的显示名称,start= auto 表示在系统启动时自动启动服务。

  1. 以下是 sc 命令的详细参数配置说明:
    sc create [ServiceName] binPath= "[ExecutablePath] [Options]" DisplayName= "[DisplayName]" start= [StartType]
    
    • ServiceName: 指定服务的名称,这是您在后续管理服务时需要使用的标识符。
    • binPath: 指定可执行文件的完整路径,包括执行文件本身和可能的命令行参数。
    • Options: 如果您的可执行文件需要附加命令行参数以正确运行,可以在这里指定。
    • DisplayName: 指定服务的显示名称,这是在服务管理器中显示的名称。
    • StartType: 指定服务的启动类型,有以下选项:
      • auto: 在系统启动时自动启动服务。
      • demand: 仅在手动请求时启动服务(默认值)。
      • disabled: 禁用服务,不会自动启动。

方法二:使用 NSSM(Non-Sucking Service Manager)

  1. 下载 NSSM: 前往 NSSM 官方网站(https://nssm.cc/)下载最新版本的 NSSM 工具。

  2. 安装 NSSM: 将下载的 NSSM 压缩包解压到一个文件夹中。

  3. 添加服务:

    • 打开命令提示符(以管理员权限运行)。
    • 导航到 NSSM 所在的目录。
    • 运行以下命令来添加可执行文件为服务,例如将 Nginx 添加为服务:
      nssm install Nginx
      
    • 在弹出的窗口中配置服务信息:
      • Path: 可执行文件的完整路径(例如:C:\nginx\nginx.exe)。
      • Startup directory: 可执行文件所在的目录。
      • Arguments: 需要传递给可执行文件的参数,例如 -g “daemon off;”。
      • Service name: 服务的名称(例如:Nginx)。
    • 点击 “Install Service” 按钮。
  4. 启动和管理服务:

    • 打开服务管理器(services.msc)。
    • 在列表中找到刚刚添加的服务,右键单击进行操作。

方法三 :使用 WinSW

  1. 下载 WinSW: 前往 WinSW 的 GitHub 仓库(https://github.com/winsw/winsw)下载最新版本的 WinSW。

  2. 配置 WinSW XML 文件:

    • 解压下载的 WinSW 压缩包,找到 winsw.xml 文件。
    • 用文本编辑器打开 winsw.xml 文件。
    • 修改 元素为服务的 ID, 元素为服务的名称, 元素为服务的描述。
    • 在 元素中指定可执行文件的路径。
    • 如果需要,可以配置更多选项,例如 、 等。
  3. 安装服务:

    • 打开命令提示符(以管理员权限运行)。
    • 导航到 WinSW 所在目录。
    • 运行以下命令以安装服务:
      winsw install
      
  4. 启动和管理服务:

    • 使用以下命令启动、停止或重启服务:

      winsw start
      winsw stop
      winsw restart
      
    • 或者在服务管理器中找到刚刚添加的服务,右键单击进行操作。

步骤 3:启动和管理服务

  1. 打开服务管理器(按下 Win + R 键,输入 services.msc,然后按 Enter)。
  2. 在服务列表中,找到刚刚创建的 Nginx 服务。
  3. 右键单击服务,选择启动、停止、重启等操作。

其他:删除服务

  1. 删除 NSSM 添加的服务:
    导航到 NSSM 所在的目录;运行以下命令以删除服务,其中 “ServiceName” 是您要删除的服务名称:
nssm remove ServiceName
  1. 删除 WinSW 添加的服务:
    导航到 WinSW 所在的目录;运行以下命令以删除服务:
winsw uninstall
  1. 删除使用 sc 命令添加的服务:
    运行以下命令以删除服务,其中 “ServiceName” 是您要删除的服务名称:
sc delete ServiceName

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/118224.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue实战【调整Vue-element-admin中的菜单栏,并添加顶部模块菜单栏】

目录 🌟前言🌟小伙伴们先看🌟实现思路🌟具体代码🌟最后 🌟前言 因为最近在整合公司的项目,需要把所有系统里的功能集成到一个项目里,这样就导致菜单栏目录会特别的多,不…

【MySQL学习笔记】(七)内置函数

内置函数 日期函数示例案例-1案例-2 字符串函数示例 数学函数其他函数 日期函数 示例 获得当前年月日 mysql> select current_date(); ---------------- | current_date() | ---------------- | 2023-09-03 | ---------------- 1 row in set (0.00 sec)获得当前时分秒…

ARM 汇编基础知识

1.为什么学习汇编? 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一 上电 SP 指针还没初始化, C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境…

HarmonyOS应用开发者高级认证练习题

系列文章目录 HarmonyOS应用开发者基础认证练习题 HarmonyOS应用开发者高级认证练习题 文章目录 系列文章目录前言一、判断二、单选三、多选 前言 本文所有内容来源于个人进行HarmonyOS应用开发者系列认证的学习过程中所做过的练习题,所有答案均是个人作答&#x…

手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (1)

首先理清我们需要实现什么功能,怎么实现,提供一份整体逻辑:包括主函数和功能函数 主函数逻辑: 1. 读图,两张rgb(cv::imread) 2. 找到两张rgb图中的特征点匹配对 2.1定义所需要的参数:keypoints…

手机怎么剪视频?分享一些剪辑工具和注意事项

视频剪辑是一种将多个视频片段进行剪切、合并和编辑的技术,它可以帮助我们制作出精彩的视频作品。如今,随着智能手机的普及,我们可以随时随地使用手机进行视频剪辑。本文将为大家介绍一些手机剪辑工具和注意事项,帮助大家更好地进…

MATLAB实现AHP层次分析法——以情人节选取礼物为例

问题背景: 情人节来临之际,广大直男(女)同胞在给异性朋友选购礼物时会遇到难题——什么才是礼物好坏最重要的标准?基于层次分析法AHP进行计算,得出最高权重的指标,给出各位朋友选购礼物的一种思…

Vue框架--Vue中的数据绑定

Vue中有两种数据绑定的方式 1.单向数据绑定(v-band):数据只能够从data流向页面 2.双向数据绑定(v-model):数据不仅仅能够从data流向页面,也可以从页面流向data。 备注: 1.双向绑定一般都应用在表单类元素上。(如:input、select等有value属性值的标签上) 2.…

[ZenTao]源码阅读:自定义任务类型

1、module/custom/control.php 2、module/custom/model.php

C#-单例模式

文章目录 单例模式的概述为什么会有单例模式如何创建单例模式1、首先要保证,该对象 有且仅有一个2、其次,需要让外部能够获取到这个对象 示例通过 属性 获取单例 单例模式的概述 总结来说: 单例 就是只有 一个实例对象。 模式 说的是设计模式…

多线程的五种“打开”方式

1 概念 1.1 线程是什么?? 线程(Thread)是计算机科学中的一个基本概念,它是进程(Process)中的一个执行单元,负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。…

Linux中的基础IO

目录 1、关于C语言中的文件操作符 1.1 C语言中写文件 1.2 C语言读文件 1.3 往显示器上输出信息 1.4 stdin & stdout & stderr 1.5 打开文件的方式 2、系统文件IO 2.1 写操作文件 2.2 读操作文件、 2.3 open open函数的返回值 2.4 文件描述符 0 & 1 &a…

赴日IT 如何提高去日本做程序员的几率?

其实想去日本做IT工作只要满足学历、日语、技术三个必要条件,具备这些条件应聘就好,不具备条件你就想办法具备这些条件,在不具备条件之前不要轻易到日本去,日本IT行业虽然要求技术没有国内那么高,但也不是随便好进入的…

uniapp 微信小程序添加隐私保护指引

隐私弹窗&#xff1a; <uni-popup ref"popup"><view class"popupWrap"><view class"popupTxt">在你使用【最美万年历】之前&#xff0c;请仔细阅读<text class"blueColor" click"handleOpenPrivacyContract…

Spark【RDD编程(二)RDD编程基础】

前言 接上午的那一篇&#xff0c;下午我们学习剩下的RDD编程&#xff0c;RDD操作中的剩下的转换操作和行动操作&#xff0c;最好把剩下的RDD编程都学完。 Spark【RDD编程&#xff08;一&#xff09;RDD编程基础】 RDD 转换操作 6、distinct 对 RDD 集合内部的元素进行去重…

C语言:截断+整型提升+算数转换练习

详情关于整型提升、算数转换与截断见文章&#xff1a; 《C语言&#xff1a;整型提升》 《C语言&#xff1a;算数转换》 一、代码一 int main() { char a -1; signed char b -1; unsigned char c -1; printf("%d %d %d", a, b, c); return 0; } 求…

ToBeWritten之VSOC安全运营

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

华为OD:敏感字段加密

题目描述&#xff1a; 给定一个由多个命令字组成的命令字符串&#xff1a; 1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号&#xff1b; 2、命令字之间以一个或多个下划线_进行分割&#xff1b; 3、可以通过两个双引号”"来标识包含下划线…

【实战】十一、看板页面及任务组页面开发(六) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十八)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

pytest笔记: pytest单元测试框架

第一步&#xff1a;安装 和查看版本 pycharm settings 查看 第二步&#xff1a; 编写test_example.py def inc(x):return x1 def test_answer():assert inc(4) 5 第三步&#xff1a;在当前路径下执行pytest 命令 PS E:\data\web测试\Selenium3自动化测试实战——基于Pyth…