windos 品台编写的 小工具 exe 或者 批处理 .bat 经常需要开机自启动,可以直接把它 加在开启启动项,或者做成 windos服务,这样既可以开机自动启动而且还可以 防止误触关闭掉;
windos 以服务启动 exe/bat 的通用方式:
WinSWhttps://github.com/winsw/winsw/releases/tag/v3.0.0-alpha.11
选择你对于的平台就可以,下面就以nginx 和 minio 来做示例
以服务的方式运行 nginx
- 下载 WinSW-x64.exe, 放到 nginx.exe 同目录
- 修改 WinSW-x64.exe 为 nginx-service.exe (非必须)
- 编写同名 的 .xml 文件 nginx-service.xml
<service> <id>nginx</id> <name>nginx</name> <description>nginx</description> <logpath>C:\nginx-1.22.1</logpath> <logmode>roll</logmode> <depend></depend> <executable>C:\nginx-1.22.1\nginx.exe</executable> <stopexecutable>C:\nginx-1.22.1\nginx.exe -s stop</stopexecutable> </service>
同目录下 cmd 运行命令进行安装
# 安装nginx服务 命令 nginx-service.exe install # 启动nginx服务 命令 nginx-service.exe start # 停止nginx服务 命令 nginx-service.exe stop # 查看nginx服务 状态 命令 nginx-service.exe status # 卸载nginx服务 命令 nginx-service.exe uninstall
以服务的方式运行 minio
- 下载 WinSW-x64.exe, 放到 minio.exe 同目录
- 修改 WinSW-x64.exe 为 minio-service.exe
- 编写 run.bat 用来启动 minio
# 设置用户名 set MINIO_ROOT_USER=admin # 设置密码(8位) set MINIO_ROOT_PASSWORD=12345678 minio.exe server --address :9000 --console-address :9001 C:\MinIO\Datum\
- 编写同名 的 .xml 文件 minio-service.xml,这里直接运行的是 .bat 批处理文件
<service> <!-- 指定Windows内部用户标识服务的唯一id --> <id>minio-server</id> <!-- 指定Windows服务的简短唯一名称 --> <name>minio-server</name> <!-- 对服务的完整描述 --> <description>minio文件存储服务器</description> <!-- 可设置环境变量 --> <env name="MINIO_HOME" value="%BASE%"/> <!-- 指定要启动的可执行文件 --> <executable>%BASE%\run.bat</executable> <!-- 指定日志文件的目录,默认为配置文件所在的目录 --> <logpath>%BASE%\logs</logpath> <!-- 设置日志模式为按文件大小和时间滚动 --> <log mode="roll-by-size-time"> <!-- 日志文件大小为10240kb生成新日志文件 --> <sizeThreshold>10240</sizeThreshold> <!-- 设置日志文件名按时间的格式 --> <pattern>yyyyMMdd</pattern> <!-- 设置每天按时间滚动日志的时间 --> <autoRollAtTime>00:00:00</autoRollAtTime> <!-- 文件保留天数(需要autoRollAtTime同时使用) --> <zipOlderThanNumDays>7</zipOlderThanNumDays> <!-- <zipDateFormat>yyyyMMdd</zipDateFormat> --> </log> </service>
- 同目录下 cmd 运行命令进行安装
# 安装 minio 服务 命令 minio-service.exe install # 启动 minio 服务 命令 minio-service.exe start # 停止 minio 服务 命令 minio-service.exe stop # 查看 minio 服务 状态 命令 minio-service.exe status # 卸载 minio 服务 命令 minio-service.exe uninstall
这样的姿势 是不是超方便, 其实他还有好多其他命令,比方自动重启等等,你们可以自己探索下