- 浏览: 212834 次
- 性别:
- 来自: 宇宙
文章分类
最新评论
-
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 5081.日志文件 java.lang.ArrayInd ... -
ant build.xml详解
2014-09-12 16:57 844转:http://www.cnblogs.com/wang ... -
常用shell脚本
2014-08-29 09:11 714常用shell脚本集 1、监测来自某个IP的TCP活动连接 ... -
netstat命令详解
2014-08-27 14:55 1750netstat命令用于显示IP、TCP、UDP和ICMP协 ... -
通过kill命令获取Java程序卡死的thread dump日志
2014-08-26 18:07 2566最近一个接收数据的应用,经常莫名其妙的卡死,出现这种情况时 ... -
Linux 下挂载新硬盘方法
2014-03-06 12:08 713转载请注明: 转载自Life吧 本文永久链接地址:htt ... -
《Java并发编程实践》阅读笔记
2013-03-18 10:36 0《Java并发编程实践》 知识要点 一 ... -
用Wrapper将java程序注册为服务
2013-03-12 14:35 1026Wrapper是Java官方推荐的产品,可以把编写的程序注 ... -
《Java并发编程实战》阅读笔记
2012-12-31 17:34 0知识要点 1、 2、 阅读进度 ——201 ... -
Hibernate 一对多 oracle
2012-12-12 17:24 865一对多,一方 @Entity @Table(name ... -
查看TCP网络连接情况
2012-12-05 10:25 847命令:netstat -n | awk '/^tcp/ ... -
Tomcat SessionId长度
2012-11-23 10:26 2400最近在做一个接口项目,其中有一个接口的节点在规范中明确要 ... -
tomcat https配置
2012-11-22 11:01 12211、生成证书 # JAVA_HOME/bin/k ... -
Ant打包java project自动生成manifest文件
2012-11-05 11:21 1861用Ant打包java project,自动生成manifest ... -
Log4j.properties配置详解
2012-10-30 09:56 908一、Log4j简介 Log4j ... -
TCP/IP通信程序设计的丰富多样性(长短连接)
2012-10-15 10:01 892刚接触TCP/IP通信设计的人根据范例可以很快编出一个通 ... -
Redis安装与Java客户端Jedis
2012-10-10 11:40 1574最近,有个Java ... -
Java虚拟机JVM的设置和调优
2012-09-29 10:40 1573一、堆 -Xmx3550m:设置JV ... -
Java系统监控、性能调优工具
2012-09-28 17:37 1507Java的监控与性能调优工具很多,除了JDK自带的一些工具外, ... -
Jprofiler6的安装与使用
2012-09-28 16:40 1552在实际使用过程中, ...
相关推荐
java项目启动脚本,启动、重启
【Linux通用Java程序启动脚本】是用于在Linux操作系统中便捷地启动、停止、重启以及检查Java应用程序状态的脚本。这种脚本通常采用bash语言编写,能够灵活适应不同的Java项目,只需调整其中的配置变量即可。以下是...
自启动脚本主要目的是在Linux系统启动时自动启动Java服务,确保服务的高可用性。创建自启动脚本通常包括以下步骤: 1. 创建shell脚本:在系统的`/etc/init.d/`目录下创建一个名为`myjavaservice`的shell脚本,例如...
Java编程语言具有跨平台的能力,这使得它在各种操作系统上都能运行。在Windows和Linux环境中,启动批处理脚本(bat)...通过这种方式,开发者可以在Java程序中灵活地调用操作系统级别的功能,实现更复杂的自动化流程。
java程序linux启动shell脚本,支持start ,stop. 修改jar名即可用
linux下启动Java程序和杀死java进程shell脚本
总结一下,Linux环境下通过脚本执行Java程序涉及的知识点包括: 1. 安装与验证Java环境 2. 编写Bash脚本,包括设置主类、类路径、JVM参数等 3. 执行Java程序的命令行语法 4. 处理依赖的库和配置文件 5. 脚本的权限...
本主题聚焦于使用Java来操作Linux服务器,特别是通过执行shell脚本来获取服务器的反馈数据。以下将详细阐述这个过程涉及的技术点和步骤。 首先,我们需要理解Java中的SSH(Secure Shell)框架,它允许我们在安全的...
另一个脚本`mmDataCollect.sh`可能负责数据收集和处理,它可能包含与Java程序交互的逻辑,例如启动Java应用,或者使用`java`命令执行已经编译好的类文件。 对于`tomcat_cut_2.sh`,虽然没有具体描述,但根据名字...
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
linux通用版本jar启动脚本傻瓜式启动 sh run.sh start 启动 sh run.sh stop 停止 nohup java -jar XXX.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
本文档将详细介绍一个通用的Linux启动脚本,它不仅可以启动Java程序,还能有效地管理进程的生命周期。该脚本由tudaxia.com编写于2011年6月7日,主要功能包括:启动Java程序、检查进程是否正在运行以及停止已运行的...
Java启动脚本生成工具是一款非常实用的开发辅助软件,它能帮助Java开发者快速生成适用于Windows和Linux操作系统的启动脚本,极大地提高了工作效率,避免了手动编写脚本的繁琐过程。这款工具的核心功能在于自动化处理...
该压缩包文件“java程序产品包模板-内置linux和Windows通用shell启动停止脚本(无需系统安装Java运行环境).zip”提供了一套适用于Java程序的通用打包方案,特别强调了其能够在Linux和Windows操作系统上无缝运行,且不...
Java启动脚本,Java项目的启动,关闭,重启,查看应用程序状态,查看应用程序日志。内有可配置参数,可根据项目进行配置。脚本上有备注
在Linux或Unix系统中,通常我们会创建一个.sh(shell脚本)文件来执行Java程序。脚本的基本结构可能包括以下部分: 1. **设置环境变量** - 首先,我们需要设置JAVA_HOME指向Java的安装目录,确保PATH包含JDK的bin...
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件,有很多不方便的地方,一旦代码修改就需要重新编辑打包,其实还有很多其他的方式,这个资源中包含...
在Linux环境下运行Java程序是许多开发人员日常工作中的一部分。Linux以其稳定性和安全性成为了服务器平台的首选,而Java作为跨平台的编程语言,其程序在Linux上运行同样具有广泛的应用。这篇博文将深入探讨如何在...
### Linux下执行Java程序的Shell脚本详解 #### 背景介绍 在Linux环境中运行Java应用程序时,经常需要通过shell脚本来启动Java程序。这种方式不仅便于自动化部署和管理,还可以根据需求灵活调整运行参数。本文将详细...