开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时. 早上来把程序改完善一些,增加了记录等功能. 实现: 检查是否有notepad,要用的话就算成自己的进程名,如果进程宕了就过会自动重启(会在当前目录下生成一个start.bat)…
本文转自网络,由于找不到原作者,因而无法知道出处.如果有幸让原作者看到,请联系我加上.先转载至此. 最近几天加班加疯掉了,天天晚上没法睡.开发部的一个核心程序总是会自己宕机,然后需要手工去起,而这个服务的安全级别又很高,只有我可以操作,搞得我晚上老没法睡,昨晚实在受不了了,想起以前在hp-ux下写的shell守护进程,这回搞个windows下的bat版守护程序吧,当时晚上思路已经很迟钝了,就叫了个兄弟让他写了,上去后运行效果不错,至少昨晚我安心睡了7小时. 早上来把程序改完善一些,增加了记录等功…
一两个月前为产品写了一个独立的exe,由于产品使用的捕获dump是一个现成的进程外exe,如果以资源的方式集成它容易出现安全警告,由于时间关系没有寻求新的解决方法,还是遵循旧方案,不捕获dump. 最近业余看了会儿breakpad client,想到一个解决方案——其实也蛮简单的,最后exe大概会增加200多KB.下边从头分析. 有这样一种需求,希望一个进程启动之后,有另一个进程来“守护”它,当它发生crash时,能生成dump,然后把它重启:还有一个要求,“守护”进程跟工作进程必须是在同一个物…
直接上代码: @ECHO OFF SET dbhost=主机名(例如:127.0.0.1)SET dbuser=用户名(例如:root)SET dbpasswd=用户密码(例如:root)SET dbName=数据库名称(例如:test)SET sqlpath=%~dp0(此语句可以保证.bat同级目录下的.sql文件能被找到)set sqlfile=update.sql(需要执行执行sql的文件) 进入mysql安装路径的bin目录下,如果配置了环境变量则不需要此语句 (例如:cd /d C:…
好好的批处理,居然没有正式的Sleep可供调用.有时候,确实感到很无趣. 1. 方法1: ping 1.1.1.1来模拟 好不容易从stackoverflow上找到一个答案(称之为答案,是因为它被人标注为answer),是这么实现的: ping 1.1.1.1 -n 1 -w 60000 > nul 这个表示,会sleep 60秒钟. 果真如此吗? 它要基于一个假设:1.1.1.1永远不会被目标机器ping通.但我却碰到了灵异事件,在某台测试机上,直接能ping通: Pinging 1.1.1.…
这个脚本提供两种方式守护,一种是通过进程名,但对于进程名都是java.exe的java程序不适用,另一种是通过netstat查找应用程序所监听的端口是否正在被监听.这两种方式可以在脚本中通过两个冒号注释来选择切换.下面是设置成通过端口来守护的,当端口没被监听则打开一个zip文件,所以运行后会发现没过5秒会重复打开这个zip文件,除非这个zip文件打开后会自动监听8080端口,那当然是不可能的!脚本涉及的命令就不解释了搜一下就知道了. @echo off ::检测时间间隔,单位:秒 set _in…
三种启动方式的特点: 第一种方式 :根目录之命令窗口启动 特点:每次启动都要进入到redis的根目录,比较繁琐,并且占用一个窗口 第二种方式:bat脚本便捷启动 特点:可放在桌面便捷启动,占用窗口 第三种方式:无窗口启动 特点:可放在桌面便捷启动,不占用窗口,但是是否启动成功需要打开任务管理器确认 第一种方式 :根目录之命令窗口启动 windows下redis启动,需要进入redis安装目录,然后shift+右键,选择“在此处打开命令窗口”,然后输入redis-server.exe redis.…
前言 在上篇文章中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程,来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问. 如果你以后用准备使用 asp.net core来开发项目的话,程序并且部署到 Linux 上的话,那么此篇文章你值得收藏. 如果你觉得对你有帮助的话,不妨点个[推荐]. 目录 什么是守护进程 Supervisor 介绍 Supervis…
Windows不像Linux,Unix那样,ps -ef 查出端口和进程号,然后根据进程号直接kill进程. Windows根据端口号杀死进程要分三步: 第一步 根据端口号寻找进程号 C:\>netstat -aon|findstr "9050" TCP    127.0.0.1:9050            0.0.0.0:0              LISTENING       2016 -o 显示拥有的与每个连接关联的进程 ID. -a            显示所有…
原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html 前言 在上篇文章中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程,来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问. 如果你以后用准备使用 asp.net core来开发项目的话,程序并且部署到 Linux 上的话,那…
搭建linux服务器的时候,需要写一个简单的守护进程来监控服务的运行情况,shell脚本如下: #!/bin/sh function daemon() { while true do server=`lsof -i:` #服务器占用端口为8080,通过查看8080端口是否占用来判断服务是否启动 date=`date "+%Y-%m-%d %H:%M:%S"` if [ ! "$server" ] then echo "$date, webserver is…
一.Windows下开启Mysql慢查询详解 //show variables like '%quer%';查询是否开启了慢查询!! 第一步:修改my.ini(mysql配置文件)  在my.ini中加上下面两句话  log-slow-queries = “D:\wamp\mysql_slow_query.log”  long_query_time=5  第一句使用来定义慢查询日志的路径(因为是windows,所以不牵涉权限问题)  第二句使用来定义查过多少秒的查询算是慢查询,我这里定义的是5秒…
shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 /[directory]/[directory]/.../[directory]/ [disk]:\[directory]\[directory]\...\[directory]\ path [变量]=[文件名],LBSAM set [变量]=[文件名],BSAM 把文件名赋值给变量 [变量]=[设定值] [变量]="[设定值]" [变量]='[设定值]' [变量]=[设定值]; export…
cls @echo off :设置窗口字体颜色 color 0a :设置窗口标题 TITLE MySQL管理程序 by ThinkVenus call :checkAdmin goto menu :菜单 :menu cls echo. echo.=-=-=-=-请选择您要对MySQL的操作-=-=-=-=- echo. echo.1: 启动MySQL echo. echo.2: 关闭MySQL echo. echo.3: 重启MySQL echo. echo.4: 退 出 echo. echo.…
一.基础语法:1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令.可以使用任何文本文件编辑工具创建和修改.2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环.3.批处理的编程能力远不如C语言等编程语言,也十分不规范.4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行.5.C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都…
一.简单批处理内部命令简介  1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.    语法  echo [{on│off}] [message] Sample:@echooff / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来. 2.@ 命令 表示不显示@ 后面的命令,在入侵过程中(例如使用…
一.JDK版本切换批处理脚本 我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示: 当我们想要切换使用的JDK版本时,我们可以有两种做法: 1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可. 2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOME环境变量的值,这是一种偷懒的做法,这种做法需要一个RefreshEnv.exe…
[linux环境] 方法1:截取进程pid,再kill ps -ef | grep java.endorsed.dirs | grep -v grep | cut -c10-15 | xargs kill -9 方法2: 1)找到linux下的进程pids ps -ef  | grep eSight | grep -v grep | awk '{print $2}' 2)循环pids,kill -9 pid [windows] kill 命令行参数中带tomcat字符串的 java.exe 进程…
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/5209386.html 感谢! 一.JDK版本切换批处理脚本 我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示:…
手动调用exe或者启动服务很麻烦,可以使用.bat批处理文件,双击运行即可.步骤如下:创建一个新的txt文件但是保存成.bat结尾的文件(选择用记事本打开编写命令),输入代码内容格式如下: @echo off start "" "exe文件路径" 举例:---------------记事本中内容---------------@echo offstart "" "D:\Program Files\Tencent\QQ\QQ.exe&quo…
   1.  前言 在使用 Sysinternals 出品的 Process Explorer 过程中,对 “Run as Limited User” 功能的实现方式颇感兴趣,一番搜寻之下发现Mark大神在<Running as Limited User – the Easy Way>中对该功能的实现做了相关的阐述: use the CreateRestrictedToken API to create a security context, called a token, that’s a…
工作时,我每天早上到公司,打开自己的电脑,都会有几个固定的软件(myeclipse,飞信,firefox,foxmail等).文件夹和文件需要打开,每天如此,感到很烦,浪费时间做重复的工作,于是想到一键点点击,然后可以打开所有自己需要打开的软件.文件.文件夹.想法很不错,用什么来实现呢?想来想去,觉得用批处理(.bat)来处理可以实现.于是就开始琢磨,查批处理相关的知识.最后终于搞出来了. 新建一文本文件,例如start.txt,内容如下,具体地址根据自己的路径改下就行: cd ..\..\Pr…
今天启动我的play framework 服务 提示 could not bind on 9000.还是个error.这让我很不解,昨天还好好的. 怀疑是9000呗某个服务占了,在linux下还挺好办但是在windows 就不好用了,在网上找半天啊.为了下次不再 纠结这个问题,记录一下: 在windows命令行窗口下键入如下命令: netstat -aon 在Local Address下面可以看到被占用的端口号情况.比如上图中80端口被PID为3096的进程占用了. 假如是希望查找指定的端口号被…
1. Dump文件的用途 Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态.  除了平时常见的attach到这个进程, 分析Dump文件就成了一个重要的手段了. 相信一些做软件维护和支持的工程师在这方面深有体会, 比如某天某时,客户说, 呀, 糟糕, 服务器进程挂掉了, 怎么回事? 然后,看看了日志文件,也没有什么可用的信息.  技术支持告诉他, 按某步骤生成一个dump文件来看看...... 2. 如何生成Dump文…
卸载程序,结果没卸载干净---程序的安装目录中还剩下一个dll文件.想删,结果系统提示说dll文件被某个进程占用了,不让删. 先前碰到这种做法,我都是直接使用unlocker先unlock一下,然后删的.不过公司的电脑,不让随便安装软件,于是只能想其他办法了. 在网上找了半天,终于给找到查看dll被某个进程调用的方法了. 在命令行下使用 tasklist /m dll文件名 就能查找了.原来tasklist还有这作用啊.于是又去翻tasklist的使用说明.以下就是找到的应用举例,具体的task…
process是一个全局内置对象,可以在代码中的任何位置访问此对象,这个对象代表我们的node.js代码宿主的操作系统进程对象. 使用process对象可以截获进程的异常.退出等事件,也可以获取进程的当前目录.环境变量.内存占用等信息,还可以执行进程退出.工作目录切换等操作 1.当我们想要查看应用程序当前目录时,可以使用cwd函数 : process.cwd(); 2.如果需要改变应用程序目录,就要使用chdir函数了: process.chdir('目录名'); 3.stdout是标准输出流,…
date  windows 打印时间戳  年:echo %date:~,% 月:echo %date:~,% 日:echo %date:~,% 星期:echo %date:~,% 小时:echo %time:~,% 分钟:echo %time:~,% 秒:echo %time:~,% 毫秒:echo %time:~,% window 计划任务 定时删除保留周期时间内文件: 设置执行bat  :设置 触发器 执行周期: bat 执行文件示例 : set "Ymd=%date:~0,4%%date:…
摘要:说明:很多木马会利用自身的程序截取系统敏感文件或信息发往指定的邮箱,而blat并不是木马,它小巧却有强大的发邮件功能,可不要用它做违法事,感觉和木马功能有一拼!下面先看个具体的实例(在blat同目录创建个批处理): @echooff ::::::::::::::参数设置:... 说明:很多木马会利用自身的程序截取系统敏感文件或信息发往指定的邮箱,而blat并不是木马,它小巧却有强大的发邮件功能,可不要用它做违法事,感觉和木马功能有一拼!下面先看个具体的实例(在blat同目录创建个批处理):…
转载:http://www.jb51.net/article/49627.htm 转载:http://blog.csdn.net/c1520006273/article/details/50539057 转载:http://blog.csdn.net/hanzheng260561728/article/details/51558990(教程) 转载:http://blog.csdn.net/humanzt/article/details/5798784 转载: 一.直接使用cmd来进行服务的一些…
1.要监控的程序为使用cygwin环境编译的exe可执行文件hello.exe,源码如下: #include <stdio.h> #include <unistd.h> void main(void) { while(1) { printf("hello\n"); sleep(1); } } 2.以批处理形式启动hello.exe,那么启动hello.exe的批处理脚本如下: @echo off C:chdir C:\cygwin64\binbash --log…