前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows 自建服务 & 注册表 & WinSW & 自动重启服务

Windows 自建服务 & 注册表 & WinSW & 自动重启服务

作者头像
收心
发布2022-01-19 14:58:22
2.3K0
发布2022-01-19 14:58:22
举报
文章被收录于专栏:Java实战博客Java实战博客

快速导航: 方式一 方式二:推荐这个方式,100%成功,其他方式不保证! 方式三

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

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

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

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

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

代码语言:javascript
复制
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

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

代码语言:javascript
复制
# 注册表中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命令

代码语言:javascript
复制
描述:
        在注册表和服务数据库中创建服务项。
用法:
        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!

代码语言:javascript
复制
进入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位的版本

教程:

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

代码语言:javascript
复制
<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、创建服务

代码语言:javascript
复制
# 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

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

特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式一 windows自带的sc命令 不保证所有程序都可运行!
    • 那么这些服务,都是被记录在系统的注册表里面的!我们先唤起注册表:
      • Win键 + R键 输入regedit 即可唤起注册表编辑器
      • 方式二 WinSW 推荐
        • 教程:
        • 方式三
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档