`
xwater
  • 浏览: 4009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于java的linux线程监控

阅读更多
在阿里云上弄了个最小的云服务器,512m内存,建了个百度网盘资源站省淘网,tomcat有时会因内存占用过多,被系统回收,暂时没有太好的解决方法,就写了个小程序,监控tomcat线程,如果线程没了,就自动启动,代码如下:
package monitor;

import java.io.ByteArrayOutputStream;

import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.PumpStreamHandler;

public class Monitor {
	public static void main(String[] args) {
		try {
			while (true) {
				Thread.sleep(10000);
				String command = "ps -ef";
				ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
				CommandLine commandline = CommandLine.parse(command);
				DefaultExecutor exec = new DefaultExecutor();
				exec.setExitValue(0);
				PumpStreamHandler streamHandler = new PumpStreamHandler(
						errorStream);
				exec.setStreamHandler(streamHandler);
				exec.execute(commandline);
				String result = errorStream.toString("UTF-8");
				if (result.indexOf("tomcat") < 0) {
					System.out.println("未找到进程,启动tomcat");
					command = "./startup.sh";
					commandline = CommandLine.parse(command);
					exec.execute(commandline);					
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}


需要依赖apache的commons-exec-1.2.jar包

当时对linux系统不熟,才写的这个,现在已经改为用linux crontab的方式了
分享到:
评论

相关推荐

    java springboot 海康威视监控抓拍图片并保存,以及打包

    肯定能用,开发环境java8,idea,springboot,包含了打包遇到的问题,不动的可以参考这个文件里面文本的文章,看了再不懂那就可以放弃了。

    java多线程tcpsocketserver源码-Java-Book:Java学习资料整理

    java多线程tcp socket server源码 Java学习资料整理 框架 / dubbo监控 / / / / / / / / / / / / / / / / / / / / 收藏 / 技术社区 书籍推荐 计算机基础 计算机科学导论 --(如果不是计算机科班的,应先看看计算机基础...

    linux定时java程序,短信、邮件在linux自动发送

    linux定时java程序,包含短信、邮件发送等检测程序,使用多线程技术。主要功能是监控系统状态,然后通过短信邮件进行通知,里边包含了许多测试工程,自己看代码选择需要的

    Java聊天室程序源码(毕业设计)

    接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    java开源包4

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包11

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包6

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包101

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包9

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包5

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包8

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包10

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    linux上 arthas 的安装教程

    实时监控:Arthas可以实时监控Java应用程序的运行状态,包括线程、类加载、GC等信息,帮助开发者了解应用程序的运行情况。 2. 命令行工具:Arthas提供了丰富的命令行工具,可以通过命令行进行故障排查和性能优化,...

    java开源包1

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包3

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    Java-JVM性能监控与故障处理工具详细介绍以及使用案例

    这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照文件(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。使用JVM命令和一查看这个JVM参数,帮助我们排查、解决问题。 1 JDK的命令行工具 ...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    linux 代码控制 自动化代码检查 sonar 代码规范 阿里巴巴Java开发规范手册 UMPAY——编码规范 日志规范 异常规范 网络 协议 TCP/IP HTTP hession file HTTPS 负载均衡 容器 JBOSS tomcat resin...

Global site tag (gtag.js) - Google Analytics