前言
windows上部署服务后,苦恼于无法后台启动,就是使用了后台使用,也可能会以为用户退出,而导致bat脚本退出,所以我们使用sc注册服务,实现开机自启动和服务启动。
一、sc命令
为注册表中的服务和服务控制管理器数据库创建子项和项。
语法
sc.exe [<servername>] create [<servicename>] [type= {own | share | kernel | filesys | rec | interact type= {own | share}}] [start= {boot | system | auto | demand | disabled | delayed-auto}] [error= {normal | severe | critical | ignore}] [binpath= <binarypathname>] [group= <loadordergroup>] [tag= {yes | no}] [depend= <dependencies>] [obj= {<accountname> | <objectname>}] [displayname= <displayname>] [password= <password>]
具体使用,参考:https://docs.microsoft.com/zh-CN/windows-server/administration/windows-commands/sc-create
二、实例
设置filebeat注册服务,开机自动启动。
@echo off
echo "执行此脚本需要使用管理员权限,请注意打印日志是否正常!" && pause
set filepath=%~dp0
sc create filebeat binPath= "\"%filepath%filebeat.exe\" -c \"%filepath%filebeat.yml\"" DisplayName= "filebeat" start= delayed-auto
echo "创建服务成功,请在服务中查看" && pause
总结
sc命令很好用,类似于linux里的systemd。