`
yjandx3543
  • 浏览: 49950 次
  • 性别: Icon_minigender_1
  • 来自: 隐居山林
社区版块
存档分类
最新评论

shell脚本控制jar的启动和停止

 
阅读更多
呵呵呵,想起了一个以前写的shell脚本,启动和关闭线程(myshell.sh)。

CLASS_PATH=dayemail.jar
CLASS_PATH=$CLASS_PATH:lib/activation.jar
CLASS_PATH=$CLASS_PATH:lib/classes12.jar
CLASS_PATH=$CLASS_PATH:lib/c3p0-0.9.1.2.jar
CLASS_PATH=$CLASS_PATH:lib/commons-email-1.2.jar
CLASS_PATH=$CLASS_PATH:lib/dom4j-1.6.jar
CLASS_PATH=$CLASS_PATH:lib/jaxen-1.1.1.jar
CLASS_PATH=$CLASS_PATH:lib/jxl.jar
CLASS_PATH=$CLASS_PATH:lib/log4j-1.2.16.jar
CLASS_PATH=$CLASS_PATH:lib/mail.jar

SERVER=/qzpt/mydayemail
cd $SERVER   
  
case "$1" in   
  
  start)   
    nohup java -Dfile.encoding=UTF8 -Xms64M -Xmx256M -cp $CLASS_PATH com.trendsnet.myemail.EmailShell > $SERVER/server.log 2>&1 &   
    echo $! > $SERVER/server.pid   
    ;;   
  
  stop)   
    kill `cat $SERVER/server.pid`   
    rm -rf $SERVER/server.pid   
    ;;   
  
  restart)   
    $0 stop   
    sleep 1   
    $0 start   
    ;;   
  
  *)   
    echo "Usage: myshell.sh {start|stop|restart}"  
    ;;   
  
esac   
  
exit 0  


会自动生成server.pid记录当前线程的PID.
日志文件logger.info形式的日志记录进了Server.log ,当然也可以去掉写入Server.log改用自己的Log4j.


年代久远 ,记录另一个启动脚本,centos下可用:
CLASS_PATH=

# Append jars to CLASS_PATH
if [ -d lib ]; then
  for i in lib/*.jar; do
    CLASS_PATH="$CLASS_PATH":"$i"
  done
fi

#启动命令
MSTART="java -Dfile.encoding=UTF8 -Xms128M -Xmx512M -cp $CLASS_PATH com.data.StartShell" 

#停止
if [ "$1" = "stop" ]
then
    #kill all Pid
    pidlist=`ps -ef|grep com.data.check.StartShell | grep -v "grep"|awk '{print $2}'`
    
    if [ "$pidlist" = "" ]
    then
        echo "No Service Running!"
    else
        for pid in ${pidlist}
        do
            kill -9 $pid        
        done
        echo "Service Stop Success!"
    fi
fi

#启动
if [ "$1" = "start" ]
then
    pidlist=`ps -ef|grep com.data.check.StartShell | grep -v "grep"|awk '{print $2}'`
    
    if [ "$pidlist" = "" ]
    then
        nohup $MSTART > /dev/null 2>&1 &
        pidlist=`ps -ef|grep com.data.check.StartShell | grep -v "grep"|awk '{print $2}'`
        if [ "$pidlist" = "" ]
        then
            echo "Service Start Failed!"
        else
            echo "Service Start Success!"
        fi
    else        
        echo "Service Exists!"
    fi
fi

#检查是否启动
if [ "$1" = "check" ]
then
    pidlist=`ps -ef|grep com.data.check.StartShell | grep -v "grep"|awk '{print $2}'`
    
    if [ "$pidlist" = "" ]
    then
        echo "Service Not Exists!"
    else        
        echo "Service Exists!"
    fi
fi

#监控,如果不存在,自动启动
if [ "$1" = "monitor" ]
then
    while [ 1 ] ;do
        pidlist=`ps -ef|grep com.data.check.StartShell | grep -v "grep"|awk '{print $2}'`    
        if [ "$pidlist" = "" ]
        then
            nohup $MSTART > /dev/null 2>&1 &
        fi
        
        sleep 10;
    done
fi

if [ -z "$1" ]
then
    echo "Parm must be: [start|stop|check|monitor]"
fi

分享到:
评论
2 楼 yjandx3543 2012-05-15  
$CLASS_PATH:lib/activation.jar 
康小奔 写道
shell脚本必须和jar在同一目录下嘛

$CLASS_PATH:lib/activation.jar 
不一定啊,这个$CLASS_PATH就是用来拼接的嘛....路径还不是自己写的。
1 楼 康小奔 2012-05-15  
shell脚本必须和jar在同一目录下嘛

相关推荐

    Shell脚本批量启动jar和停止jar

    Shell脚本一键启动和停止jar,包含启动所有,启动指定的jar,停止所有,停止指定的jar,重启所有的jar

    Shell脚本启动和停止springboot的jar包

    在本场景中,我们有两个文件——`startup.sh`和`shutdown.sh`,它们是用于启动和停止Spring Boot应用的Shell脚本,其中还涉及到内存配置。 首先,让我们深入理解`startup.sh`脚本。这个脚本的主要目标是启动一个...

    shell 批量启动,停止,重启jar脚本

    支持批量启动jar,停止jar,重启jar,同时也支持单个jar的启动,停止,重启. ./service.sh start all ./service.sh start homesaty

    Linux下启动和停止jar包运行的脚本

    在Linux环境下,管理Java应用程序的运行状态,如启动和停止jar包,通过shell脚本实现自动化操作,是常见的需求。本文将深入解析如何利用shell脚本来控制Java应用程序的启动和停止,基于提供的“startTest.sh”和...

    centos7下启动springboot项目启动脚本(shell脚本)

    前言:打包好的springboot项目,可以使用java -jar xxx.jar的方式启动。当出现多个springboot项目需要启动的时候,可以使用脚本启动的方式。这在springcloud项目的开发测试阶段尤为有用。以下展示启动脚本示例,过程...

    Linux下SpringBoot jar包 启动、停止、重启及状态查看shell脚本

    部署springboot 项目时,替换包后的停止、启动、重启及状态查看,操作比较琐碎,因此我们可以通过编写一个shell脚本来进行启动(start)、停止(stop)、重启(restart)和状态查看(status)操作,一步到位,方便高效

    shell脚本发布jar包服务,war包服务

    - 编写shell脚本以控制应用程序的生命周期,如启动、停止、查看状态等。 - 如果是Web应用,将WAR文件部署到Tomcat的webapps目录下,或者通过`tomcat.sh`脚本进行部署。 - 使用`service.sh`将应用注册为系统服务,...

    shell启动java程序(jar)的脚本

    shell启动jar程序的脚本,可以根据传入的参数"start"、"stop"、"restart"启动当前目录下的jar程序。

    输出执行操作和打印日志的shell脚本实例

    cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间...log_error打印shell脚本

    shell脚本的使用步骤及jar包

    总结,Shell脚本的使用涵盖了从创建、编辑到执行的整个过程,它结合了条件判断、循环控制等多种编程结构。而jar包是Java程序的打包形式,便于分发和执行。在实际工作中,Shell脚本常用来自动化处理与jar包相关的任务...

    IDEA中编写并运行shell脚本的实现

    IDEA中编写并运行shell脚本的实现是指在Integrated Development Environment(IDE)中编写、配置和运行shell脚本的过程。该过程需要安装bashsupport插件,配置插件,安装git软件,配置IDEA环境,创建Bash Script文件...

    启动停止java服务的shell脚本

    本文将详细介绍如何使用Shell脚本来启动和停止Java服务,适用于包括SpringBoot在内的各种Java应用程序。 首先,让我们理解什么是Shell脚本。Shell脚本是Linux或Unix操作系统中的批处理程序,由一系列命令组成,可以...

    shell脚本启动Java程序测试工程

    总的来说,shell脚本启动Java程序提供了极大的灵活性和可扩展性,允许我们轻松地集成其他功能,如自动部署、监控、性能调整等。这使得shell脚本成为自动化Java应用运维的重要工具。通过熟练掌握这些技能,开发者可以...

    centos上通过sh文件启动jar等程序与命令详解.zip

    在Linux系统,特别是CentOS这样的基于Red Hat的发行版中,使用shell脚本来启动和管理Java应用程序(如jar包)是一种常见的做法。本文件包提供了一个名为`run.sh`的shell脚本模板以及一个`run命令详解.docx`文档,...

    Linux一键启动多个jar

    这通常涉及到编写一个bash shell脚本,该脚本可以依次执行Java命令来运行、停止或重启多个.jar文件。例如,`gollum.sh`可能是这样一个脚本,它会按照特定的顺序执行这些操作。 在`gollum.sh`脚本中,我们可能看到...

    shell脚本:一键启动当前目录所有jar包、一键停止jar包、一键查看当前目录所有jar包的进程数、一键重启jar包脚本

    此shell脚本中包含功能: 一键启动当前目录所有jar包 一键停止当前目录jar包 一键查看当前目录所有jar包的进程数 一键重启当前目录jar包 执行命令为: 查看进程:sh java_check.sh process 启动:sh java_check.sh ...

    Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法.zip

    在Linux环境中,管理和部署SpringBoot应用通常涉及到自动化脚本,特别是使用Shell脚本来启动和停止应用程序。本主题将深入探讨如何编写这样的脚本,以便高效地处理SpringBoot的jar程序。 首先,理解SpringBoot的...

    linux下启动jar包shell脚本

    linux下jar包启动脚本,实测可用,只需修改你的环境变量和应用名称

    Monkey.jar和shell脚本

    >Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径...>Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;

    项目快速部署与日志查看工具:一键启动Jar的Shell脚本

    这个资源是一对功能强大的Shell脚本,专为简化在Linux环境下的项目部署与日志查看而设计。首先,用户只需修改脚本中的Jar...这些Shell脚本的使用将为您的项目管理带来极大的便利和效率提升,让您专注于项目开发和优化。

Global site tag (gtag.js) - Google Analytics