栏目导航
热点推荐
- 三十条有用的 Java 编程规则
- Java制作水印图片源码
- Java常见异常及可能的导致原因
- Java中的修饰词使用方法总结
- J2EE系统异常的处理准则
- Java中的异常、断言、日志解析(
- Java面试技巧:Java面试题集锦(
- 面向Java开发人员的Scala指南:
- Java程序员:一刻钟精通正则表达
- 网友经验分享:学好java开发的关
- 专家解答:创建表格与数据库进行
- Java远程访问Domino数据库
阅览排行
防止同一个Java应用重复启动的shell脚本
www.jz123.cn 2009-12-19 来源: 中国建站 责任编辑(袁袁) 我要投递新闻
通常,一个Java的后台应用程序,在Linux的终端可以启动多个,这样造成资源浪费,甚至相互操作竞争资源导致问题。这里通过也shell脚本启动应用,在shell脚本中做了些限制。就可以巧妙避免重复启动的问题了。
比如应用的目录结构为:
app
bin(存放启动脚本startup.sh和class文件、配置文件等。)
lib(存放引用的库)
假设应用的类名为:mypack.MyAppMain
startup.sh #!/bin/sh programdir="." program="mypack.MyAppMain" num=$# temp=$CLASSPATH #setting libs path libs=../lib/* append(){ temp=$temp":"$1 } for file in $libs; do append $file done export CLASSPATH=$temp:.:../:$programdir export LANG=zh_CN res=`ps aux|grep java|grep $program|grep -v grep|awk '{print $2}'` if [ -n "$res" ] then echo "MyAppMain already running" else nohup java -classpath $CLASSPATH mypack.MyAppMain & sleep 3 unset res res=`ps aux|grep java|grep $program|grep -v grep|awk '{print $2}'` if [ -n "$res" ] then echo "MyAppMain start success" else echo "MyAppMain start error" fi fi |
然后通过此脚本来启动,就可以解决问题了。
注意:
启动时候还可能出现startup.sh没有执行权限的问题,改为777。
还有可能出现错误信息:
: bad interpreter: 没有那个文件或目录
这是因为startup.sh脚本的编码不对,你需要保证文档格式是UNIX的,这个问题好多人栽过跟头,我也不例外,以为shell脚本语法不对,其实是文件编码的问题!
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/243360
0
上一篇:编写一数据报通信程序,实现简单的Java聊天窗口 下一篇:J2EE系统异常的处理准则