这几天做项目迁移,需要将之前在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
相关推荐
- **JavaWeb**:JavaWeb是指使用Java技术开发的Web应用程序,可以利用FastDFS来处理文件存储和传输。 - **Shell**:这里提到的脚本是用Shell语言编写,Shell是Unix/Linux系统中的命令解释器,可以用来编写自动化任务...
在IT行业中,Tomcat是一款广泛使用的开源Java Servlet容器,它主要负责执行Java Web应用程序。创建和使用Tomcat自动启停脚本是系统管理员和开发者为了提高效率和便捷性的重要手段。下面将详细介绍如何创建和理解这样...
5. **JDK 1.8**: Java Development Kit(JDK)是开发和运行Java应用程序的工具集合。版本1.8是Java的一个重要版本,引入了Lambda表达式、Stream API等新特性,增强了Java的编程效率。 6. **MySQL 8.0**: MySQL是一...
2. **Shell**:Shell脚本是Linux或Unix系统中的命令行解释器,可以编写一系列命令来执行自动化任务。genius脚本就是用Shell编写,它封装了一系列操作,如克隆代码、构建应用、打包、启动和停止服务等。 3. **Maven*...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf