当前位置: 首页 > news >正文

Windows脚本启动Redis、Java和Nginx服务指南

文章目录

    • 1. 完整的批处理脚本
    • 2. Redis服务
    • 3. Java服务
    • 4. Nginx服务

1. 完整的批处理脚本

@echo offcd C:\path\to\redis
tasklist /FI "IMAGENAME eq redis-server.exe" 2>NUL | find /I /N "redis-server.exe">NUL
if "%ERRORLEVEL%"=="0" (echo Redis is running, need to be manually restarted.
) else (echo Starting Redis...start redis-server.exe redis.windows.conf
)cd F:\workSpace\code-safe\wms-admin\target
set port=16000
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (echo kill the process %%m who use the porttaskkill /pid %%m -t -fgoto start
)
:startset JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
START "server" javaw -jar %JAVA_OPTS% code-safe.jarcd F:\nginx\nginx-1.19.8
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if "%ERRORLEVEL%"=="0" (echo Nginx is running, restarting...nginx -s reload -c ./conf/nginx.conf
) else (echo Starting Nginx...start nginx -c ./conf/nginx.conf
)echo All services started or need to be manually restarted.

接下来,我们将逐步解析这个脚本的各个部分,以便你可以更好地理解它的工作原理。

2. Redis服务

在本指南中,我们将向您介绍一个用于管理Windows各种服务启动的批处理脚本。这些服务包括Redis、一个基于Java的服务以及Nginx。该脚本检查服务是否正在运行,如果没有,则启动它。

让我们逐节解读这个脚本:

@echo offcd C:\path\to\redis
tasklist /FI "IMAGENAME eq redis-server.exe" 2>NUL | find /I /N "redis-server.exe">NUL
if "%ERRORLEVEL%"=="0" (echo Redis is running, need to be manually restarted.
) else (echo Starting Redis...start redis-server.exe redis.windows.conf
)

此脚本首先导航至包含Redis的目录。然后检查Redis服务是否已经在运行。如果在运行,将显示一条消息,通知您需要手动重启服务。如果没有运行,则使用配置文件redis.windows.conf启动Redis服务。

命令解析

命令解释
cd C:\path\to\redis这个命令将当前目录(即命令行的工作目录)更改为你Redis服务的安装目录。
tasklist /FI “IMAGENAME eq redis-server.exe” 2>NUL | find /I /N “redis-server.exe”>NULtasklist命令用于列出当前运行的所有任务。/FI选项用于过滤出只包含特定条件的任务。这里的条件是"IMAGENAME eq redis-server.exe",意思是只列出名为redis-server.exe的进程。2>NUL是将错误信息重定向到NUL,即不显示错误信息。
if “%ERRORLEVEL%”==“0”%ERRORLEVEL%是环境变量,表示上一条命令的退出状态。如果上一条命令执行成功,它的值通常为0。

3. Java服务

@echo offcd F:\workSpace\code-safe\wms-admin\target
set port=16000
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (echo kill the process %%m who use the porttaskkill /pid %%m -t -fgoto start
)
:startset JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
START "server" javaw -jar %JAVA_OPTS% code-safe.jar

这个脚本导航至包含Java服务的目录,然后设置一个特定的端口(在此为16000)。如果有任何进程正在使用该端口,脚本将杀掉这些进程,然后启动Java服务。这里使用的Java启动参数(JAVA_OPTS)可以根据实际需要进行调整。

命令解析

命令解释
set port=16000这个命令设置了一个环境变量,名为port,值为16000
for /f “tokens=1-5” %%i in (‘netstat -ano^ |findstr “:%port%”’) do (
taskkill /pid %%m -t -f
goto start
)
for /f命令用于读取一段文本,并将其拆分成多个令牌。这里的命令会将运行`netstat -ano

4. Nginx服务

@echo offcd F:\nginx\nginx-1.19.8
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if "%ERRORLEVEL%"=="0" (echo Nginx is running, restarting...nginx -s reload -c ./conf/nginx.conf
) else (echo Starting Nginx...start nginx -c ./conf/nginx.conf
)

这段脚本首先导航至Nginx的安装目录。然后检查Nginx服务是否正在运行。如果在运行,则重新加载Nginx配置文件nginx.conf。如果没有运行,则启动Nginx服务。

最后,脚本会输出一条消息,通知所有服务已启动或需要手动重启。

命令解析

命令解释
nginx -s reload -c ./conf/nginx.conf这个命令用于重新加载Nginx的配置文件。-s选项表示发送信号,reload表示重新加载配置文件,-c选项表示指定配置文件的路径。
start nginx -c ./conf/nginx.conf如果Nginx服务未在运行,这个命令将启动Nginx服务并加载配置文件。

相关文章:

Windows脚本启动Redis、Java和Nginx服务指南

文章目录 1. 完整的批处理脚本2. Redis服务3. Java服务4. Nginx服务 1. 完整的批处理脚本 echo offcd C:\path\to\redis tasklist /FI "IMAGENAME eq redis-server.exe" 2>NUL | find /I /N "redis-server.exe">NUL if "%ERRORLEVEL%"&qu…...

【宝藏系列】STM32之C语言基础知识

【宝藏系列】STM32之C语言基础知识 文章目录 【宝藏系列】STM32之C语言基础知识1️⃣位操作2️⃣define宏定义3️⃣ifdef条件编译4️⃣extern变量声明5️⃣typedef类型别名 C语言是单片机开发中的必备基础知识,本文列举了部分 STM32 学习中比较常见的一些C语言基础知…...

探索自除数:发现区间内的神奇数字

本篇博客会讲解力扣“728. 自除数”的解题思路,这是题目链接。 对于给定的正整数num,我们如何判断它是不是自除数呢?根据定义,我们只需要把num的每一位数字都取出来,判断能不能整除num,如果发现num的某一位…...

打卡力扣题目四

#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解题代码 三、解题思路 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享…...

npm yarn nrm

npm 和 yarn npm和yarn都是包管理器,yarn是在2016年发布的,那时npm还处于V3时期,那时候还没有package-lock.json文件,不稳定性、安装速度慢等缺点经常会受到广大开发者吐槽。此时,yarn 诞生了。yarn 的优点&#xff0c…...

关于我对刚开始学Java的小白想分享的内容:

编程是很有魅力的,让很多人为之痴迷 如果你是初学者,俗称小白,不妨看看下述内容: 文章目录 1. Java 简介 Java 是一门编程语言,发展至今已经成为一门真正意义上的语言标准。 Java是一个完整的平台,有一个…...

Redis学习路线(5)—— Redis生成唯一ID

一、全局唯一ID (一)在用户抢购时,就会生成订单并保存到数据库中,而订单表如果使用自增ID就会存在以下几种情况: 自增ID规律性太强受单表数据量的限制 (二)全局ID生成器,是一种在…...

django后台系统Tyadmin

无意之间发现个django的后台管理框架,仔细与xadmin对比了一下,无论是功能上还是便携性上都与xadmin特别相似,但个人感觉Tyadmin略胜一筹,因为外观上要比xadmin要美观,而且相比起来速度也快,部署甚至也和简单…...

设计模式适合用于解决特定的软件设计问题呢

当我们在开发软件时,经常会遇到各种各样的问题和挑战,例如如何处理对象之间的关系、如何实现复杂的业务逻辑、如何处理并发访问等。这些问题都是软件设计中经常遇到的问题,而设计模式就是为了解决这些问题而诞生的。 以下是一些常见的软件设…...

测试|测试分类

测试|测试分类 文章目录 测试|测试分类1.按照测试对象分类(部分掌握)2.是否查看代码:黑盒、白盒灰盒测试3.按开发阶段分:单元、集成、系统及验收测试4.按实施组织分:α、β、第三方测试5.按是否运行代码:静…...

矩阵中的路径(JS)

矩阵中的路径 题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是…...

Linux时间体系与LinuxPTP

Linux时间体系 Linux 需要提供“知道当前时间、计算时间长度、定时提醒”这三种功能。 其中知道当前时间和计算时间长度在某种程度上可以互相转换。即以UNIX Epoch计时开始可以知道当前时间。 一般硬件可以提供下列的硬件时钟: RTC 【真实时钟】 对于PC而言&…...

最优除法(力扣)数学 JAVA

给定一正整数数组 nums,nums 中的相邻整数将进行浮点除法。例如, [2,3,4] -> 2 / 3 / 4 。 例如,nums [2,3,4],我们将求表达式的值 “2/3/4”。 但是,你可以在任意位置添加任意数目的括号,来改变算数的…...

Git代码管理

目录: git环境配置 git工作流程git常用命令gitlab实战gitlog分析与检索分支管理策略git合并与冲突 1.git环境配置 Git 简介: Git 是目前世界上最先进的分布式版本控制系统。Git 优点: 适合分布式开发,强调个体…...

使用vscode进行远程开发服务器配置

1.下载vscode 2.给vscode 安装python 和 remote ssh插件 remote—SSH扩展允许您使用任何具有SSH服务器的远程机器作为您的开发环境。 3.安装remote-SSH插件之后,vscode左侧出现电脑图标,即为远程服务,按图依次点击,进行服务器配置…...

北斗gps卫星授时服务器(NTP)应用于防火墙场景

北斗gps卫星授时服务器(NTP)应用于防火墙场景 北斗gps卫星授时服务器(NTP)应用于防火墙场景 作为网络建设中不可或缺的两方面,在保证网络安全稳定以及时间同步精确性方面,防火墙和NTP服务器都极为重要。而防…...

Quartz中Misfire机制源码级解析

文章目录 前文案例展示Misfire机制1. 启动过程补偿2. 定时任务补偿3. 查询待触发列表时间区间补偿 前文 Misfire是啥意义的?使用翻译软件结果是"失火"。一个定时软件,还来失火?其实在Java里面,fire的含义更应该是触发&…...

每日一题——重建二叉树

重建二叉树 题目描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和…...

Python - json与字典dict

Python中的JSON和字典都是数据序列化的格式,它们都可以将数据转换为字符串以便于存储或传输。虽然它们有一些相似之处,但也有很多不同之处。 字典 字典是Python中的一种数据类型,它是一个键值对的集合。每个键对应一个值,可以通…...

性能测试必备监控技能linux篇

前言 如果性能测试的目标服务器是linux系统,在如何使用linux自带的命令来实现性能测试过程的监控分析呢? 对于日常性能测试来讲,在linux下或是类Unix系统,我们必须掌握以下常用的指标查看命令。 ps pstree top free vmstat …...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

node.js的初步学习

那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...