- 浏览: 207682 次
- 性别:
- 来自: 宇宙
文章分类
最新评论
-
naryCC:
虽然没有smarty那么方便,但是由于我们的环境太老不得不使用 ...
SmartTemplate -
victorwmh:
我们项目是Java项目,但数据源来自不同的地方,有些还是合作单 ...
和C++相对应Java的CheckSum -
cuisuqiang:
那你们到底是Java项目还是C++的项目?
和C++相对应Java的CheckSum -
david.org:
attempt to write a readonly dat ...
linux+apache+subversion版本控制 -
victorwmh:
wellee 写道兄弟,我怎么配置ZendDebugger老是 ...
Zend Debugger和Zend Optimizer配置(Windows)
#!/bin/sh # #该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用。 # #Author: tudaxia.com, Date: 2011/6/7 # #警告!!!:该脚本stop部分使用系统kill命令来强制终止指定的java程序进程。 #在杀死进程前,未作任何条件检查。在某些情况下,如程序正在进行文件或数据库写操作, #可能会造成数据丢失或数据不完整。如果必须要考虑到这类情况,则需要改写此脚本, #增加在执行kill命令前的一系列检查。 # ################################### # 以下这些注释设置可以被chkconfig命令读取 # chkconfig: - 99 50 # description: Java程序启动脚本 # processname: test # config: 如果需要的话,可以配置 ################################### # ################################### #环境变量及程序执行参数 #需要根据实际环境以及Java程序名称来修改这些参数 ################################### #JDK所在路径 JAVA_HOME="/usr/java/jdk" #执行程序启动所使用的系统用户,考虑到安全,推荐不使用root帐号 RUNNING_USER=root #Java程序所在的目录(classes的上一级目录) APP_HOME=/opt/tudaxia/test/WEB-INF #需要启动的Java主程序(main方法类) APP_MAINCLASS=com.tudaxia.test.TestMain #拼凑完整的classpath参数,包括指定lib目录下所有的jar CLASSPATH=$APP_HOME/classes for i in "$APP_HOME"/lib/*.jar; do CLASSPATH="$CLASSPATH":"$i" done #java虚拟机启动参数 JAVA_OPTS="-ms512m -mx512m -Xmn256m -Djava.awt.headless=true -XX:MaxPermSize=128m" ################################### #(函数)判断程序是否已启动 # #说明: #使用JDK自带的JPS命令及grep命令组合,准确查找pid #jps 加 l 参数,表示显示java的完整包路径 #使用awk,分割出pid ($1部分),及Java程序名称($2部分) ################################### #初始化psid变量(全局) psid=0 checkpid() { javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAINCLASS` if [ -n "$javaps" ]; then psid=`echo $javaps | awk '{print $1}'` else psid=0 fi } ################################### #(函数)启动程序 # #说明: #1. 首先调用checkpid函数,刷新$psid全局变量 #2. 如果程序已经启动($psid不等于0),则提示程序已启动 #3. 如果程序没有被启动,则执行启动命令行 #4. 启动命令执行后,再次调用checkpid函数 #5. 如果步骤4的结果能够确认程序的pid,则打印[OK],否则打印[Failed] #注意:echo -n 表示打印字符后,不换行 #注意: "nohup 某命令 >/dev/null 2>&1 &" 的用法 ################################### start() { checkpid if [ $psid -ne 0 ]; then echo "================================" echo "warn: $APP_MAINCLASS already started! (pid=$psid)" echo "================================" else echo -n "Starting $APP_MAINCLASS ..." JAVA_CMD="nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAINCLASS >/dev/null 2>&1 &" su - $RUNNING_USER -c "$JAVA_CMD" checkpid if [ $psid -ne 0 ]; then echo "(pid=$psid) [OK]" else echo "[Failed]" fi fi } ################################### #(函数)停止程序 # #说明: #1. 首先调用checkpid函数,刷新$psid全局变量 #2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行 #3. 使用kill -9 pid命令进行强制杀死进程 #4. 执行kill命令行紧接其后,马上查看上一句命令的返回值: $? #5. 如果步骤4的结果$?等于0,则打印[OK],否则打印[Failed] #6. 为了防止java程序被启动多次,这里增加反复检查进程,反复杀死的处理(递归调用stop)。 #注意:echo -n 表示打印字符后,不换行 #注意: 在shell编程中,"$?" 表示上一句命令或者一个函数的返回值 ################################### stop() { checkpid if [ $psid -ne 0 ]; then echo -n "Stopping $APP_MAINCLASS ...(pid=$psid) " su - $RUNNING_USER -c "kill -9 $psid" if [ $? -eq 0 ]; then echo "[OK]" else echo "[Failed]" fi checkpid if [ $psid -ne 0 ]; then stop fi else echo "================================" echo "warn: $APP_MAINCLASS is not running" echo "================================" fi } ################################### #(函数)检查程序运行状态 # #说明: #1. 首先调用checkpid函数,刷新$psid全局变量 #2. 如果程序已经启动($psid不等于0),则提示正在运行并表示出pid #3. 否则,提示程序未运行 ################################### status() { checkpid if [ $psid -ne 0 ]; then echo "$APP_MAINCLASS is running! (pid=$psid)" else echo "$APP_MAINCLASS is not running" fi } ################################### #(函数)打印系统环境参数 ################################### info() { echo "System Information:" echo "****************************" echo `head -n 1 /etc/issue` echo `uname -a` echo echo "JAVA_HOME=$JAVA_HOME" echo `$JAVA_HOME/bin/java -version` echo echo "APP_HOME=$APP_HOME" echo "APP_MAINCLASS=$APP_MAINCLASS" echo "****************************" } ################################### #读取脚本的第一个参数($1),进行判断 #参数取值范围:{start|stop|restart|status|info} #如参数不在指定范围之内,则打印帮助信息 ################################### case "$1" in 'start') start ;; 'stop') stop ;; 'restart') stop start ;; 'status') status ;; 'info') info ;; *) echo "Usage: $0 {start|stop|restart|status|info}" exit 1 esac exit 0
脚本来源:http://www.tudaxia.com/archives/10
发表评论
-
linux日志分析常用命令
2016-11-18 15:18 4621.日志文件 java.lang.ArrayInd ... -
ant build.xml详解
2014-09-12 16:57 811转:http://www.cnblogs.com/wang ... -
常用shell脚本
2014-08-29 09:11 632常用shell脚本集 1、监测来自某个IP的TCP活动连接 ... -
netstat命令详解
2014-08-27 14:55 1663netstat命令用于显示IP、TCP、UDP和ICMP协 ... -
通过kill命令获取Java程序卡死的thread dump日志
2014-08-26 18:07 2501最近一个接收数据的应用,经常莫名其妙的卡死,出现这种情况时 ... -
Linux 下挂载新硬盘方法
2014-03-06 12:08 660转载请注明: 转载自Life吧 本文永久链接地址:htt ... -
《Java并发编程实践》阅读笔记
2013-03-18 10:36 0《Java并发编程实践》 知识要点 一 ... -
用Wrapper将java程序注册为服务
2013-03-12 14:35 991Wrapper是Java官方推荐的产品,可以把编写的程序注 ... -
《Java并发编程实战》阅读笔记
2012-12-31 17:34 0知识要点 1、 2、 阅读进度 ——201 ... -
Hibernate 一对多 oracle
2012-12-12 17:24 799一对多,一方 @Entity @Table(name ... -
查看TCP网络连接情况
2012-12-05 10:25 795命令:netstat -n | awk '/^tcp/ ... -
Tomcat SessionId长度
2012-11-23 10:26 2369最近在做一个接口项目,其中有一个接口的节点在规范中明确要 ... -
tomcat https配置
2012-11-22 11:01 11821、生成证书 # JAVA_HOME/bin/k ... -
Ant打包java project自动生成manifest文件
2012-11-05 11:21 1823用Ant打包java project,自动生成manifest ... -
Log4j.properties配置详解
2012-10-30 09:56 869一、Log4j简介 Log4j ... -
TCP/IP通信程序设计的丰富多样性(长短连接)
2012-10-15 10:01 850刚接触TCP/IP通信设计的人根据范例可以很快编出一个通 ... -
Redis安装与Java客户端Jedis
2012-10-10 11:40 1539最近,有个Java ... -
Java虚拟机JVM的设置和调优
2012-09-29 10:40 1525一、堆 -Xmx3550m:设置JV ... -
Java系统监控、性能调优工具
2012-09-28 17:37 1475Java的监控与性能调优工具很多,除了JDK自带的一些工具外, ... -
Jprofiler6的安装与使用
2012-09-28 16:40 1517在实际使用过程中, ...
相关推荐
java项目启动脚本,启动、重启
虽然写起动shell的频率非常不高。。。但是每次要写都要对付一大...#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用。 # #Author: tudaxia.
linux系统java服务自启动shell脚本及服务cpu内存占用监控脚本
linux下启动Java程序和杀死java进程shell脚本
linux通用版本jar启动脚本傻瓜式启动 sh run.sh start 启动 sh run.sh stop 停止 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
JAVA操作linux服务器,本文用于启动shell脚本并返回数据,简单易懂,可随时修改,1.连接服务器。2.输入服务器地址。3.输入用户名和密码。4.输入要执行的命令。
#该脚本为Linux下启动java程序的通用脚本。
Java启动脚本,Java项目的启动,关闭,重启,查看应用程序状态,查看应用程序日志。内有可配置参数,可根据项目进行配置。脚本上有备注
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
Java程序调用linux命令、脚本,支持程序在服务器上使用linux命令。工具类为:ProcessUtil,支持单个命令和批量命令执行函数,同时在工具类中添加了getFileLineNumByCmd函数支持通过linux命令获取文件行数的样例。
java 程序 在linux系统上的自动启动脚本文件。
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
Linux平台 下 进程监控自动 重启 恢复脚本, 测试 centos平台下 java, springboot 通过
java程序通用的产品包模板,启停脚本可以同时兼容普通java工程和springboot工程,如有定制化需求可以自行扩展。
linux下脚本编译java,定时删除日志...................
主要介绍了Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
shell启动jar程序的脚本,可以根据传入的参数"start"、"stop"、"restart"启动当前目录下的jar程序。
这是Linux环境下一键启动/停止多个Java程序jar包的文件,执行命令为./java.sh start
内容概要:本脚本基于生产大量jar需要启动而编写,提升启动效率。通过参数可以实现目录下所有jar的循环启动以及单个目录下的jar包启动。 适用人群:生产环境运维人员,需要大量启动jar包的人员、需要设置开机自启动...