知识大全 防止同一个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

相关参考

知识大全 用shell和java实现自动部署

  公司用到了rackspace的cloudserver做为压力测试的服务器但是一旦启动就开始收费一个小时刀因此要求用的时候打开不用的时候关掉  但是遇到一个问题就是这样的话在上边部署应用程序和软件就

知识大全 一个不错的shell 脚本教程 入门级

建立一个脚本  Linux中有好多中不同的shell但是通常我们使用bash(bourneagainshell)进行shell编程因为bash是免费的并且很容易使用所以在本文中笔者所提供的脚本都是使用

知识大全 两个很详细的shell 实例代码

两个很详细的shell实例一般编程步骤  现在我们来讨论编写一个脚本的一般步骤任何优秀的脚本都应该具有帮助和输入参数并且写一个伪脚本(frameworksh)该脚本包含了大多数脚本都需要的框架结构是一

知识大全 系统启动脚本分析(6)--其它一些脚本简介

  摘要  这段时间在搞一个微型的Linux将它作为一个项目的平台这个过程中看了研究了一下Linux的启动过程同时把启动配置文件看了一下作了一下注释同时和大家共享一下:)我使用的Linux平台是Red

知识大全 关于tomcat快速启动及自动重启的方法与脚本

  大家好下面讨论一下关于tomcat快速启动及自动重启的方法与脚本  值班时会遇到tomcat服务需要手动重启的问题为减少对应用的影响提高响应速度可以将tomcat启动(或重启)写成类似系统服务启动

知识大全 在Java中发送邮件的一个相当完善的脚本

在Java中发送邮件的一个相当完善的脚本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  pack

知识大全 oracle中怎样从sql*plus向shell传递变量

很多人在实际的工作和学习中都遇到了无法通过sqlplus向shell传递变量下面我们来介绍一个实例脚本来进行折中处理  >  下面我们再来介绍另一个实例方法  >>>cha138/Artic

知识大全 高级应用 java多线程设计模式详解之一

  线程的创建和启动    java语言已经内置了多线程支持所有实现Runnable接口的类都可被启动一个新线程新线程会执行该实例的run()方法当run()方法执行完毕后线程就结束了一旦一个线程执行

知识大全 Java执行Shell&Command

Java执行Shell&Command  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  主要使用R

知识大全 jsp如何调用linux shell

  经常碰到运营部门人要清缓存而缓存一直存在问题老在电脑面前处理也不是个办法想了个方法通过访问一个jsp页面自动清缓存    <%@pagelanguage="java"im