知识大全 防止同一个Java应用重复启动的shell脚本
Posted 文件
篇首语:读书是学习,使用也是学习,而且是更重要的学习。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 防止同一个Java应用重复启动的shell脚本相关的知识,希望对你有一定的参考价值。
防止同一个Java应用重复启动的shell脚本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
通常 一个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 : $
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 $ `
if [ n $res ]
then
echo MyAppMain already running
else
nohup java classpath $CLASSPATH mypack MyAppMain &
sleep
unset res
res=`ps aux|grep java|grep $program|grep v grep|awk print $ `
if [ n $res ]
then
echo MyAppMain start success
else
echo MyAppMain start error
fi
fi
然后通过此脚本来启动 就可以解决问题了
注意
启动时候还可能出现startup sh没有执行权限的问题 改为
还有可能出现错误信息
: bad interpreter: 没有那个文件或目录
这是因为startup sh脚本的编码不对 你需要保证文档格式是UNIX的 这个问题好多人栽过跟头 我也不例外 以为shell脚本语法不对 其实是文件编码的问题!
下面给出没有限制的重复启动问题的脚本
#!/bin/sh
programdir=
num=$#
temp=$CLASSPATH
#setting libs path
libs= /lib/*
append()
temp=$temp : $
for file in $libs; do
append $file
done
export CLASSPATH=$temp: : /:$programdir
export LANG=zh_CN
cha138/Article/program/Java/hx/201311/26662相关参考
公司用到了rackspace的cloudserver做为压力测试的服务器但是一旦启动就开始收费一个小时刀因此要求用的时候打开不用的时候关掉 但是遇到一个问题就是这样的话在上边部署应用程序和软件就
建立一个脚本 Linux中有好多中不同的shell但是通常我们使用bash(bourneagainshell)进行shell编程因为bash是免费的并且很容易使用所以在本文中笔者所提供的脚本都是使用
两个很详细的shell实例一般编程步骤 现在我们来讨论编写一个脚本的一般步骤任何优秀的脚本都应该具有帮助和输入参数并且写一个伪脚本(frameworksh)该脚本包含了大多数脚本都需要的框架结构是一
摘要 这段时间在搞一个微型的Linux将它作为一个项目的平台这个过程中看了研究了一下Linux的启动过程同时把启动配置文件看了一下作了一下注释同时和大家共享一下:)我使用的Linux平台是Red
大家好下面讨论一下关于tomcat快速启动及自动重启的方法与脚本 值班时会遇到tomcat服务需要手动重启的问题为减少对应用的影响提高响应速度可以将tomcat启动(或重启)写成类似系统服务启动
在Java中发送邮件的一个相当完善的脚本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! pack
知识大全 oracle中怎样从sql*plus向shell传递变量
很多人在实际的工作和学习中都遇到了无法通过sqlplus向shell传递变量下面我们来介绍一个实例脚本来进行折中处理 > 下面我们再来介绍另一个实例方法 >>>cha138/Artic
线程的创建和启动 java语言已经内置了多线程支持所有实现Runnable接口的类都可被启动一个新线程新线程会执行该实例的run()方法当run()方法执行完毕后线程就结束了一旦一个线程执行
Java执行Shell&Command 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 主要使用R
经常碰到运营部门人要清缓存而缓存一直存在问题老在电脑面前处理也不是个办法想了个方法通过访问一个jsp页面自动清缓存 <%@pagelanguage="java"im