方式一 Windows自带的sc命令 (不保证所有程序都可运行!)

首先,我们习惯了任务管理器下面的服务,如图:

那么这些服务,都是被记录在系统的注册表里面的!我们先唤起注册表:

Win键 + R键 输入regedit 即可唤起注册表编辑器

我们任务管理器里面的服务是在哪里的呢?

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

如图,我们直接去修改MySQL服务的信息是不可能的,解决办法是:去注册表去修改了

# 注册表中MySQL ImagePath 对应的值是:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57

# 服务中,可执行文件的路径:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57

既然是这个道理,我们去制作一个 我们自定义的服务吧。

先简单了解一下Windows 自带的sc命令

描述:
        在注册表和服务数据库中创建服务项。
用法:
        sc <server> create [service name] [binPath= ] <option1> <option2>...


我自己的示例:
sc create 服务名称 binpath = exe的路径 参数1 参数2 等等其他参数

参数选项:
注意: 选项名称包括等号。
      等号和值之间需要一个空格。 具体用法请去搜索!
 type= <own|share|interact|kernel|filesys|rec|userown|usershare>
       (默认 = own)
 start= <boot|system|auto|demand|disabled|delayed-auto>
       (默认 = demand)
 error= <normal|severe|critical|ignore>
       (默认 = normal)
 binPath= <.exe 文件的 BinaryPathName>
 group= <LoadOrderGroup>
 tag= <yes|no>
 depend= <依存关系(以 / (斜杠)分隔)>
 obj= <AccountName|ObjectName>
       (默认= LocalSystem)
 DisplayName= <显示名称>
 password= <密码>

就弄个 MySQL服务 !先规划一下思路吧。

去服务对应的注册表下,添加一个项 命名为 MySQL_DIY!

进入cmd管理员模式 不是PowerShell 他就是cmd以管理员身份运行!!!
# 命令格式:
sc create 服务名 binPath= 程序路径 disPlayName= 显示名称

# 示例
sc create MySQL_DIY_007 binpath= "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" DisplayName= Mysql_007
                            
# 由于显示名称是中文,我们修改为 My DIY Mysql
sc config MySQL_DIY_007 DisplayName= "My DIY MySQL"

# 但是无法启动的,所以我们要修改一些参数,是的我们服务可以启动,请去注册表中找到MySQL_DIY_007 将其ImagePath 修改为:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57

这样服务就可以启动了!

报错说明 黑窗口有3种类:1、cmd 2、PowerShell 3、管理员cmd。如果你出错了,多半是你没看我的红字说明,只有第三种:管理员cmd可以创建!不信,请看下文错误示例!

创建成功后,就可以去自己的服务查看了,可以启动看看!

不一定保障所有程序能运行!(手残党容易写废了)

方式二 WinSW 推荐

采用第三方软件来处理:https://github.com/winsw/winsw/tree/master

我下载的是发行版 Windows 64位的版本

WinSW 教程:

1、根据readme的说明,跳转到安装服务 https://github.com/winsw/winsw/blob/master/doc/installation.md!

2、创建一个xml 命名为:WinSW-x64.xml,填入:具体的其他标签参数请查看:https://github.com/winsw/winsw/blob/master/doc/xmlConfigFile.md

<service>
  <id>es</id>
  <name>ES</name>
  <description>This is myTest ES</description>
  <executable>C:\Users\Dev_Java\Desktop\elasticsearch-7.13.2\bin\elasticsearch.bat</executable>
  <log mode="roll"></log>
</service>

3、创建服务

# CMD 执行命令
.\WinSW-x64.exe install

# 程序执行的结果:
2021-08-31 09:27:28,160 INFO  - Installing service 'ES (es)'...
2021-08-31 09:27:28,210 INFO  - Service 'ES (es)' was installed successfully.

创建完成,就可以去自己的服务去查看了!

可以启动,访问ES地址: 127.0.0.1:9200

看到

完成,更多玩法,只需要修改配置文件的内容即可,自己研究吧!

方式三

相关资料:https://docs.microsoft.com/zh-CN/troubleshoot/windows-client/deployment/create-user-defined-service

由于需要下载东西,我讨厌第三方网站下载的东西,所以就不在尝试了!

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤