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

一键重启Linux系统下的java web项目和java应用程序的shell脚本

阅读更多

这几天做项目迁移,需要将之前在Win下面的java web项目和java应用程序迁移到Linux系统下面去,迁移的原因就不多说了,无非是linux系统安全,稳定,也不为怪,毕竟是做舆情的,信息也挺重要的哈!

在开始前想给大家推荐个好玩的桌游,名字叫做UNO,额?不知道啥意思,找度娘去吧,我每天打开百度的次数不下玉五百次的,作为程序员经常和大家玩这个的,每次都要笑出病了,嘻嘻!

正题:

在下面的脚本中写了两个java web项目,其实是两个tomcat啦,第三个是java应用,对于web项目在使用时只要修改前面的三个变量就行了:TOMCAT_PATH,TOMCAT_BIN,TOMCAT_PORT,对应着tomcat的所在路径,所在的bin目录,还有就是项目的端口号。

对于java项目只需修改:APP_PATH,APP_HOME,APP_MAINCLASS就行,一看就明白,不多说。直接

上shell代码(ps:代码很详细的喽):

#!/bin/sh 
#a key to restart all tomcats

#set static variable start
	#all static variable start
	TOMCAT_USER=root
	#all static variable end

	#1.ahsx start
	TOMCAT_PATH_QGBBS=/data/iCrawlerS_qgBBS1
	TOMCAT_BIN_QGBBS=/data/iCrawlerS_qgBBS1/bin 
	TOMCAT_PORT_QGBBS=2616
	#1.ahsx end
	
	#2.gd start
	TOMCAT_PATH_QGBBS2=/data/iCrawlerS_qgBBS2
	TOMCAT_BIN_QGBBS2=/data/iCrawlerS_qgBBS2/bin 
	TOMCAT_PORT_QGBBS2=3128
	#2.gd end
	
	
	#添加Java 应用程序 START
	#all static variable start
	JAVA_HOME="/opt/jdk1.6.0_26"
	RUNNING_USER=root
	JAVA_OPTS="-ms512m -mx512m -Xmn256m -Djava.awt.headless=true -XX:MaxPermSize=128m"
	#all static variable endjps
	
	
	#4.imonitor程序 START
	APP_PATH_MONITOR=/data/Monitorprogram
	APP_HOME_MONITOR=/data/Monitorprogram/WebRoot/WEB-INF
	APP_MAINCLASS_MONITOR=com.judge.Filetime
	CLASSPATH_MONITOR=$APP_HOME_MONITOR/classes
	for i in "$APP_HOME_MONITOR"/lib/*.jar;do
		CLASSPATH_MONITOR="$CLASSPATH_MONITOR":"$i"
	done
	psid_monitor=0
	#4.imonitor程序 END
	
	
	
	#添加Java 应用程序 END
	
#set static variable end

#1.ahsx start function start
start_qgbbs(){
	stop_qgbbs 
	su - $TOMCAT_USER -c $TOMCAT_BIN_QGBBS/startup.sh 
	sleep 3 
	if netstat -an | grep $TOMCAT_PORT_QGBBS >/dev/null 
	then 
	echo "Tomcat is running" 
	return 0 
	else 
	return 1 
	fi 
}

stop_qgbbs(){
	if netstat -an | grep $TOMCAT_PORT_QGBBS | grep LISTEN >/dev/null 
	then 
	# try to shutdown the server first 
	echo "Now Shutdown the server..." 
	su - $TOMCAT_USER -c  $TOMCAT_BIN_QGBBS/shutdown.sh 
	else 
	echo "Tomcat is not running" 
	return 0 
	fi 

	if netstat -an | grep $TOMCAT_PORT_QGBBS | grep LISTEN 
	then 
	sleep 10 
	echo "Now kill it" 	
	ps -ef | grep java | grep $TOMCAT_PATH_QGBBS | awk '{print "kill -9 ", $2;}' | sh 
	fi 

	if netstat -an | grep $TOMCAT_PORT_QGBBS | grep LISTEN >/dev/null 
	then 
	return 1 # still alive 
	else 
	echo "Tomcat is stopped" 
	return 0 
	fi 
}
#1.qqbbs start function end

#2.qqbbs2 start function start
start_qgbbs2(){
	stop_qgbbs2 
	su - $TOMCAT_USER -c $TOMCAT_BIN_QGBBS2/startup.sh 
	sleep 3 
	if netstat -an | grep $TOMCAT_PORT_QGBBS2 >/dev/null 
	then 
	echo "Tomcat is running" 
	return 0 
	else 
	return 1 
	fi 
}

stop_qgbbs2(){
	if netstat -an | grep $TOMCAT_PORT_QGBBS2 | grep LISTEN >/dev/null 
	then 
	# try to shutdown the server first 
	echo "Now Shutdown the server..." 
	su - $TOMCAT_USER -c  $TOMCAT_BIN_QGBBS2/shutdown.sh 
	else 
	echo "Tomcat is not running" 
	return 0 
	fi 

	if netstat -an | grep $TOMCAT_PORT_QGBBS2 | grep LISTEN 
	then 
	sleep 10 
	echo "Now kill it" 	
	ps -ef | grep java | grep $TOMCAT_PATH_QGBBS2 | awk '{print "kill -9 ", $2;}' | sh 
	fi 

	if netstat -an | grep $TOMCAT_PORT_QGBBS2 | grep LISTEN >/dev/null 
	then 
	return 1 # still alive 
	else 
	echo "Tomcat is stopped" 
	return 0 
	fi 
}
#2.qqbbs2 start function end

#4.monitor start function start
checkpid_monitor(){
	javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAINCLASS_MONITOR`
	
	if [ -n "$javaps" ]; then
	    psid_monitor=`echo $javaps | awk '{print $1}'`
	else 
	    psid_monitor=0
	fi
	echo "$psid_monitor"


}

start_monitor(){
	stop_monitor
	checkpid_monitor
	if [ $psid_monitor -ne 0 ];then
		echo "warn: $APP_MAINCLASS_MONITOR already started! (pid=$psid_monitor)"
	else
	     	echo -n "Starting $APP_MAINCLASS_MONITOR"
		
		nohup java -cp "$APP_HOME_MONITOR/lib/*:$APP_HOME_MONITOR/classes" $APP_MAINCLASS_MONITOR $APP_PATH_MONITOR > $APP_HOME_MONITOR/log.out &
 	
	checkpid_monitor
		if [ $psid_monitor -ne 0 ];then
			echo "(pid=$psid_monitor) [OK]" 
		else 
			echo "[Failed]"
		fi
	fi

}
stop_monitor(){
	checkpid_monitor
	if [ $psid_monitor -ne 0 ]; then
		echo -n "Stopping $APP_MAINCLASS ...(pid=$psid_monitor)"
		kill -9 $psid_monitor
		if [ $? -eq 0 ];then
			echo "OK"
		else 
			echo "[Failed]"
		fi
	
		checkpid_monitor
		if [ $psid_monitor -ne 0 ];then
			stop
		fi
	else
		echo "===================================="
		echo "warn: $APP_MAINCLASS_MONITOR is not running " 
		echo "===================================="
	fi
	
}
#4.monitor start function end

#the place of program start
start_qgbbs
start_qgbbs2

start_monitor
#the place of program end

 

 

0
0
分享到:
评论

相关推荐

    linux系统java项目启动脚本,含启动、重启

    java项目启动脚本,启动、重启

    linux的shell脚本快速部署java环境jdk+tomcat+mysql

    这篇内容将详细介绍如何通过Linux的shell脚本来快速部署Java环境,包括JDK、Tomcat和MySQL,这三个是构建Web应用程序的基础组件。 首先,让我们来了解一下JDK(Java Development Kit)。JDK是Java开发和运行的必备...

    Linux系统自动不停重启并计数的shell脚本

    Linux系统自动不停重启并计数的shell脚本

    linux系统Tomcat重启shell脚本

    本文将详细介绍 Linux 系统 Tomcat 重启 shell 脚本,包括脚本的设计思路、实现细节和应用场景。 标题解释 Linux 系统 Tomcat 重启 shell 脚本指的是在 Linux 操作系统中使用 shell 脚本来重启 Apache Tomcat ...

    linux系统java服务自启动shell脚本及服务cpu内存占用监控脚本

    在Linux系统中,Java服务的...总结,通过自启动shell脚本和监控脚本,我们可以实现Linux系统中Java服务的自动化管理和性能监控。这不仅提高了服务的可靠性,也有助于运维人员及时发现和解决问题,保障系统的稳定运行。

    重启java程序shell脚本

    linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...

    Linux脚本制作 java web项目安装包

    Java Web项目的部署涉及将WAR文件(Web应用程序归档)复制到Web服务器的webapps目录下。`start.txt`可能包含启动Tomcat并部署应用的命令,如`/path/to/tomcat/bin/startup.sh`,然后将WAR文件拷贝到`/path/to/...

    linux-Termux一键安装Linux脚本.zip

    BusyBox集合了许多常见的Unix实用程序,而PRoot则让Termux可以在非Root环境下模拟Linux系统。Termux通过这些工具为用户提供了一个基本的Linux shell,包括bash或ash shell。 **工作原理:** 一键安装脚本通常是一段...

    一键部署Linux CentOS,自动安装MySQL、Redis和Java Shell脚本-Linux_instal

    在过去的几年里,系统管理员需要手动下载安装包,编写配置文件,执行安装命令,一个一个安装系统依赖的服务和应用程序。这种方式虽然灵活,但效率低下,且容易出错。一键部署工具的出现极大地简化了这一过程,使得...

    shell,bat脚本运行java程序

    下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...

    linux shell脚本启动java类

    详细的linux shell脚本启动java代码类。

    Java项目linux启动脚本以及日志分割安装软件

    本资源主要涉及两个核心知识点:Java项目的Linux启动脚本和日志分割工具cronolog。 首先,让我们来深入理解Java项目的Linux启动脚本。在SpringBoot这样的微服务架构中,通常需要编写自定义的Shell脚本来实现服务的...

    java在win下启动bat和在linux下启动shell脚本

    在Windows中,批处理文件通常以`.bat`或`.cmd`为扩展名,而Linux和Unix系统中,shell脚本通常以`.sh`结尾。这个工具类可能使用了Java的`Runtime`或者`ProcessBuilder`类来执行外部命令。 `Runtime.getRuntime()....

    shell脚本一键重启hyperf或swoole项目

    此脚本可以一键重启hyperf进程,贼好用。其他swoole框架也行,里面进程名改下就好。 规则为:未启动启动,已启动重启。

    linux系统Shell脚本运行java项目。

    linux shell脚本启动java。 ---------------------------------------- Windows编辑的sh,在linux会报错: shell unexpected end of file 解决办法: vim test.sh :set fileformat=unix :wq ----------------------...

    Linux系统一键安全加固shell脚本及使用说明.rar

    Linux系统一键安全加固shell脚本及使用说明。已经在centos7上验证后的,欢迎大家下载。

    一键重启tomcat脚本

    以AlibabaCloudView 工具 进行tomcat的一键kill 和 重启

    linux 一键启动 jar包 批处理脚本

    在Linux系统中,Java开发者经常需要管理Spring Boot应用程序,包括启动、停止和重启等操作。为了简化这个过程,我们可以创建一个批处理脚本,通常是一个`.sh`文件,来实现一键执行这些任务。本文将详细讲解如何编写...

    mysql8,linux版全自动安装shell脚本,一键安装

    mysql8,linux版全自动安装shell脚本,一键安装;适合自动化安装环境,学习shell编程。可读性高

    linux-linux各类一键安装脚本懒人用懒办法

    在Linux世界中,为了提升效率,开发者们常常编写...总之,Linux的一键安装脚本是提高效率的利器,它们使得系统管理和软件部署变得简单而高效。掌握使用和编写这类脚本的技巧,是每个Linux用户和开发者必备的技能之一。

Global site tag (gtag.js) - Google Analytics