一个运行中的进程,难免会因为各种各样的原因无缘无故的宕掉(比如网站瞬间的负载过高、内存不足等),而Jexus宕掉的后果往往只有一个:对外提供服务的网站无法访问了。因此,我们需要最大限度的保障我们的网站能够提供7*24小时的不间断访问,而一个网站或者一个进程宕掉的过程是瞬间的,也许前一秒还访问得好好的,下一秒就突然间报个404的错误,而从网站或进程挂掉到我们人工的发现并重启服务的过程是漫长的,除非该网站有应对单点故障的解决方案,否则在这漫长的时间之中,网站都处于一个无法访问的黑色时期。如果这个宕掉的网站是一个企业网站,这会造成企业信誉度的下降;如果是一个商城网站,这会造成经济和人气的损失;因此,我们需要让系统能够自动的检测出网站的运行状态,当出现进程服务死机的时候能够自动重启。

jws.guard的是一个python的脚本,工作原理也比较简单:根据设置好的预设值,每隔十秒钟访问一次访问一次指定的端口与文件,当三十秒内出现无法网站时就执行jws.restart进行重启网站。这里的三十秒指的是累计连续三次无法访问,防止因为检测时因为Jexus正忙而误判断重启,对网站进行误伤。

jws.guard的使用方法也比较简单,只要把 “tools/jws_guard” 目录中的 “guard.py” 和 “jws.guard” 两个脚本文件拷贝到Jexus的工作目录(跟jws.start同一目录),然后配置一下jws.guard 中的预设值即可。

我们首先把这两个文件拷贝出去

cd /usr/local/jexus/tools/jws_guard/

cp jws.guard guard.py /usr/local/jexus/

cd /usr/local/jexus/

我们已经把这两个脚本拷贝到工作目录中。

用vi打开并编辑jws.guard

把host、port、path改为我们需要的配置即可,它们分别代表主机地址,端口,检查的路径。一般情况下,如果Jexus采用80端口,这里可以不作修改直接使用,而如果Jexus采用的不是80端口,也只需要修改port,改为正确的端口并保存退出就可以了。host和path一般是不需要修改的,同时也不建议非必要的修改,因为修改jws.guard必须确保修改后修改的配置项是正确的,否则jws.guard就会因为无法访问配置后的网站而反复的重启Jexus,造成不必要的麻烦。

修改好了之后只需要执行./jws.guard即可启动这款Jexus的进程守护工具。

我们尝试性的把Jexus关掉。

……30秒之后……

Jexus又起来了。

通过jws.guard守护守护工具,我们可以很方便的让系统自动的发现Jexus进程宕机并快速的重启进程。同时我们只需要查阅Jexus的运行日志即可发现问题所在。

这里有三点需要提醒的:

  (1)、如果需要关闭Jexus服务30秒以上的,请在关闭Jexus之前先执行./jws.guard stopg关闭jws.guard守护工具,以免守护工具自动的把Jexus又启动了起来。

  (2)、jws.guard是使用python语言编写的脚本,需要运行该工具时请确保系统中已经安装了python,检查方式可以执行 python -V ,如果没有出现python的版本信息则说明系统中没有安装python,这是,各位读者可以通过yum或者其他方式安装上python之后再运行jws.guard。

  (3)、再啰嗦一次,配置jws.guard时请确保配置的值是正确的。

新版的Jexus的稳定性已经非常强,加上jws.guard可以起到加固作用。

好的,至此Jexus的守护工具jws.guard就已经介绍完毕了。

Jexus进程守护工具jws.guard的更多相关文章

  1. 开发日记:Windows进程守护工具

    近期,中心应用服务无故关闭.在检查系统和应用程序日志无果后采取了进程守护的方法.测试期内,脚本未出现系统资源占用过多的情况. 使用说明:1.进程守护.vbs  使用时需修改运行周期(10行).守护进程 ...

  2. Supervisor进程守护工具的使用

    Supervisor是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程. 官网:http://supervisord.org/      G ...

  3. python开发 *进程数据隔离.守护进程,进程同步工具 * 180725

    进程数据隔离.守护进程,进程同步工具 一.进程之间的数据隔离: from multiprocessing import Process n=100 #主程序中变量n= def func(): glob ...

  4. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  5. Supervisor安装与配置(Linux/Unix进程管理工具)

    原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...

  6. Supervisor(Linux/Unix进程管理工具)安装与配置

    参考链接:https://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyt ...

  7. Supervisor 进程管理工具

    简介: Supervisor 进程管理工具 一.安装 shell > yum -y install python-pip shell > pip install supervisor # ...

  8. supervisor - Python进程管理工具(转)

    add by zhj: 下面是在ubuntu上的一些使用经验 1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. s ...

  9. Supervisor-类unix系统下的进程控制工具

    如果你的英文足够好,请看官网的文档:http://supervisord.org/introduction.html 简介: Supervisor 类unix系统下的进程控制工具. 特性: 1.配置简 ...

随机推荐

  1. HBase & thrift & C++编程

    目录 目录 1 1. 前言 1 2. 启动和停止thrift2 1 2.1. 启动thrift2 1 2.2. 停止thrift2 1 2.3. 启动参数 2 3. hbase.thrift 2 3. ...

  2. Ubuntu的常识使用了解4

    寻找文件的「名称」 在Linux系统当中,文件的数量非常非常的多, 需要使用查找工具来高效查找指定文件位置:

  3. 试题 G: 外卖店优先级 第十届蓝桥杯

    试题 G: 外卖店优先级时间限制: 1.0s 内存限制: 512.0MB 本题总分: 20 分[问题描述]“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N.每家外卖店都有一个优先级,初始时 ...

  4. Oracle EBS客户化程序中格式化金额

    在Oracle EBS系统中,随处可见金额的显示格式,通常情况下都具有千分位符,同时有一定位数的精度,让我们先来看看一些现成的例子    上面这些列子中的金额都显示了千分位符,同时具备以2位小数,难道 ...

  5. Ubuntu 12.04 安装最新版本NodeJS

    昨天搭建了一个Windows NodeJS 运行环境,但Windows 运行NodeJS命令行各种别扭,开源包的编译也是各种问题,折磨了我一天一夜,果断换到Linux 平台.. 我选择了Ubuntu ...

  6. 网络正常只有自己访问网站异常一度让你怀疑,是不是被黑了!域名解析异常是如何发生的,如何解决处理及C#编程实现一键修改Hosts文件

    首先大家要知道在浏览器上浏览虚拟主机,必须使用Hosts文件或域名系统(DNS)实现主机名到IP地址的解析.在局域网中用Hosts文件或DNS都可以,在Internet上只能用DNS了. 1.当用户输 ...

  7. c++define的用法

    c++define的用法   在写程序时经常会碰到这样一个问题,我们需要重复写很多相同的代码,并且这些代码结构相同.总是想自己把这段代码封装一下然后直接进行调用,但是如果这段代码逻辑并不复杂,并且代码 ...

  8. 【VS2015】故障修复之dep6100,dep6200

    问题描述:把uwp程序往手机上(或者往模拟器上)部署时,vs ide提示我错误信息dep6100和dep6200,报告说“连接不到设备”. 这可把我愁坏了,各种方法都不行,最后发现问题出在Hyper- ...

  9. 手把手教你搭建hadoop+hive测试环境(新手向)

    本文由  网易云发布. 作者:唐雕龙 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 面向新手的hadoop+hive学习环境搭建,加对我走过的坑总结,避免大家踩坑. 对于hive相关docke ...

  10. “全栈2019”Java第一百一十章:局部内部类与匿名内部类区别详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...