当前位置:首页 > 技术文章 > 正文内容

教程 |Windows使用WinSW实现开机自启动服务

arlanguage3个月前 (01-31)技术文章63

实用教程 |开机自启 | WinSW

标签:服务项自启、shell命令启动

在windwos系统中,有时候需要 nginx的开机自启动,或者java的jar开机自启动,或者内网穿透工具(frp)的开机自启动,使用winsw将shell命令包成服务并设置开机自启动。

Windows Service Wrapper是一个可执行二进制文件,可用于包装和管理作为Windows服务的自定义进程,下载安装包后,您可以将 WinSW.exe 重命名为任何名称,例如 MyService.exe 。接下来您可以创建Myservice.xml文件进行服务配置。最后 MyService.exe install安装到服务即可。

WinSW开源和下载地址(最新版WinSW v2.12.0)

地址:https://github.com/winsw/winsw/releases/tag/v2.11.0

我的电脑是win10的64位系统,因此下载对应的版本,WinSW需要win10系统.NET Framework支持的,在老系统中,可能需要弄兼容。

1.windows10系统配置nginx开机启动

Nginx-WinSW-x64.xml和Nginx-WinSW-x64.exe名称必须保持一致,使用的相对路径

Nginx-WinSW-x64.xml文件内容

<service>

<!--安装windows服务后的服务ID,必须是唯一的--><id>Nginx-Service</id>

<!--服务名称,唯一的,一般和id一致即可--><name>Nginx-Service</name>

<!--该服务的描述--> <description>Nginx-Service-Test</description>

<!--启动 执行的命令--><executable>nginx.exe</executable>

<!--停止--><stopexecutable>nginx.exe -s stop</stopexecutable>

<!--第一次启动失败120秒重启--><onfailure action="restart" delay="120 sec"/>

<!--第二次启动失败300秒后重启计算机--><onfailure action="reboot" delay="300 sec"/>

<!--开机启动--><startmode>Automatic</startmode>

<!--日志配置--><logpath>nginx-WinSW-log</logpath>

<!--append:追加模式;reset:重设模式,每次服务启动时,旧的日志文件都会被截断;none:不生成任何日志文件 --><logmode>none</logmode>

</service>

nginx-winsw-install.bat

@echo offNginx-WinSW-x64.exe installexit

nginx-winsw-start.bat

@echo offNginx-WinSW-x64.exe startexit

nginx-winsw-stop.bat

@echo offNginx-WinSW-x64.exe stopexit

nginx-winsw-uninstall.bat

@echo offNginx-WinSW-x64.exe uninstallexit

首先运行nginx-winsw-install.bat 这样便能达到开机启动的作用,

如果马上要启动,那么在注册运行之后运行nginx-winsw-start.bat

停止和注销注册也有,注销之后开机启动就不起作用了

2.window10配置java开机启动(系统需要有java环境)

Boot-WinSW-x64.xml

<service>

<!-- 该服务的唯一标识 --><id>boot-black</id>

<!-- 该服务的名称 --><name>boot-black-0.0.1</name>

<!-- 该服务的描述 --><description>boot-black-0.0.1-SNAPSHOT</description>

<!-- 要运行的程序路径 --><executable>java</executable>

<!-- 携带的参数 --><arguments>-jar boot-black-0.0.1-SNAPSHOT.jar</arguments>

<!-- 第一次启动失败 60秒重启 --><onfailure action="restart" delay="120 sec"/>

<!-- 第二次启动失败 120秒后重启 --><onfailure action="restart" delay="240 sec"/>

<!-- 日志模式 --><logmode>append</logmode>

<!-- 指定日志文件目录(相对于executable配置的路径) --><logpath>boot-WinSW-log</logpath><!-- append:追加模式;reset:重设模式,每次服务启动时,旧的日志文件都会被截断;none:不生成任何日志文件 --><logmode>none</logmode>

</service>

boot-black-install.bat

@echo offBoot-WinSW-x64.exe installexit

boot-black-uninstall.bat

@echo offBoot-WinSW-x64.exe uninstallexit

可以参照对比写出相应的bat操作文件

@echo offBoot-WinSW-x64.exe startexit@echo offBoot-WinSW-x64.exe stopexit

3.window10配置frp开机启动

下载后将winsw.exe(WinSW-x64.exe 重命名后的名称为winsw.exe)放在和frp同级目录

新建xml文件命名为winsw.xml,进行配置,如下:

<service>

<id>frpc</id>

<name>frpc</name>

<description>frpc服务</description>

<executable>frpc</executable>

<arguments>-c frpc.ini</arguments>

<logmode>reset</logmode>

</service>

文件结构如下图所示

运行命令:

# 安装服务

winsw.exe install

# 卸载服务

winsw.exe uninstall

从而实现程序作为开机启动项。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1908.html

标签: nginx 截断
分享给朋友:

“教程 |Windows使用WinSW实现开机自启动服务” 的相关文章

Python WSGI 高性能服务器 - Gunicorn 简介

一、简介Gunicorn 意即 Green Unicorn,绿色独角兽。它是一个被广泛使用的高性能的 Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目。它具有如下特性:原生支持 WSGI、Django 和 Paster自动工作进程管理简单的 Pytho...

nginx监控与调优(三)

nginx监控通常有两种方法:一是status监控;二是ngxtop监控。一、status监控使用status监控的步骤:1.确定nginx中status模块是否已安装[root@localhost sbin]# nginx -V nginx version: nginx/1.13.7 built...

如何在本地部署WEB开发(PHP)环境

目前很多网站程序是基于PHP语言,比如比较有名的开源程序WordPress、Discuz、DedeCMS...对于大多初学者来说,本地部署WEB环境(PHP/ASP+Apache/Nginx+Mysql),一个一个安装调试是一件很麻烦的事。所以这次分享一下如何在本地快速搭建WEB环境!考虑到大家大多...

405状态码Nginx解决办法

最近由于业务系统并发量比较大,所以在已有负载均衡的基础上,我们做了Nginx动静分离,但是系统访问后报错,经过F12(浏览器开发者模式)和Nginx日志分析,发现请求状态变成了405,故百度解释如下:问题原因: 请求的方式(get、post、delete)方法与后台规定的方式不符合。比如: 后台方...

Nginx——location常见配置指令,alias、root、proxy_pass

1、【alias】——别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向【alias】配置的路径。如: location /test/ { alias/first/second/img/; }即:请求/test/1.jpg(省略了协议与域名),将会返回文件/first...

CentOS7服务器 Nginx离线升级教程

Nginx使用的版本 ≤ 1.21.5的Nginx版本存在漏洞。所以需要对Nginx进行升级。具体教程如下:1、确认安装的Nginx版本在任意目录下输入nginx -v,即可查看当前版本[root@master /]# nginx -v nginx version: nginx/1.12.2 [ro...