这几天做项目迁移,需要将之前在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
相关推荐
java项目启动脚本,启动、重启
这篇内容将详细介绍如何通过Linux的shell脚本来快速部署Java环境,包括JDK、Tomcat和MySQL,这三个是构建Web应用程序的基础组件。 首先,让我们来了解一下JDK(Java Development Kit)。JDK是Java开发和运行的必备...
Java Web项目的部署涉及将WAR文件(Web应用程序归档)复制到Web服务器的webapps目录下。`start.txt`可能包含启动Tomcat并部署应用的命令,如`/path/to/tomcat/bin/startup.sh`,然后将WAR文件拷贝到`/path/to/...
Linux系统自动不停重启并计数的shell脚本
本文将详细介绍 Linux 系统 Tomcat 重启 shell 脚本,包括脚本的设计思路、实现细节和应用场景。 标题解释 Linux 系统 Tomcat 重启 shell 脚本指的是在 Linux 操作系统中使用 shell 脚本来重启 Apache Tomcat ...
在Linux系统中,Java服务的...总结,通过自启动shell脚本和监控脚本,我们可以实现Linux系统中Java服务的自动化管理和性能监控。这不仅提高了服务的可靠性,也有助于运维人员及时发现和解决问题,保障系统的稳定运行。
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
详细的linux shell脚本启动java代码类。
本资源主要涉及两个核心知识点:Java项目的Linux启动脚本和日志分割工具cronolog。 首先,让我们来深入理解Java项目的Linux启动脚本。在SpringBoot这样的微服务架构中,通常需要编写自定义的Shell脚本来实现服务的...
在Windows中,批处理文件通常以`.bat`或`.cmd`为扩展名,而Linux和Unix系统中,shell脚本通常以`.sh`结尾。这个工具类可能使用了Java的`Runtime`或者`ProcessBuilder`类来执行外部命令。 `Runtime.getRuntime()....
一键部署Linux CentOS,自动安装MySQL、Redis和Java Shell脚本-Linux_install_Sql_Sedis_Java
此脚本可以一键重启hyperf进程,贼好用。其他swoole框架也行,里面进程名改下就好。 规则为:未启动启动,已启动重启。
linux shell脚本启动java。 ---------------------------------------- Windows编辑的sh,在linux会报错: shell unexpected end of file 解决办法: vim test.sh :set fileformat=unix :wq ----------------------...
Linux系统一键安全加固shell脚本及使用说明。已经在centos7上验证后的,欢迎大家下载。
以AlibabaCloudView 工具 进行tomcat的一键kill 和 重启
在Linux系统中,Java开发者经常需要管理Spring Boot应用程序,包括启动、停止和重启等操作。为了简化这个过程,我们可以创建一个批处理脚本,通常是一个`.sh`文件,来实现一键执行这些任务。本文将详细讲解如何编写...
mysql8,linux版全自动安装shell脚本,一键安装;适合自动化安装环境,学习shell编程。可读性高
linux下启动Java程序和杀死java进程shell脚本
在IT行业中,shell脚本是Linux或Unix操作系统中的一种强大工具,用于自动化任务执行和系统管理。当涉及到启动Java应用程序时,shell脚本可以提供一个方便、可重复且灵活的方法。下面我们将深入探讨如何使用shell脚本...