资讯专栏INFORMATION COLUMN

Centos学习笔记14 - java程序启动脚本

roland_reed / 3244人阅读

摘要:启动命令假定项目名字是文件服务器,用来上传和下载包目录包文件名称日志文件名称脚本名称下运行包的方式如下当前窗口被锁定,可按打断程序运行,或直接关闭窗口,程序退出当前窗口不被锁定,但是当窗口关闭时,程序中止运行。

服务器如果关机,应用比较多的话,需要重启把所有程序启动一遍。
在网上找了一些脚本,综合改了一个新的出来。
以后启动就可以少写一些命令了。

启动命令
假定项目名字是fileserver, 文件服务器,用来上传和下载

./start.sh jar包目录 jar包文件名称 日志文件名称


./start.sh /opt/fileserver fileserver-1.00.jar fileserver_log.log
脚本名称start.sh

#!/bin/bash
# -------------------------------------------
# linux下运行jar包的方式如下
# -------------------------------------------
# java -jar xxx.jar  
# 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
# -------------------------------------------
# java -jar xxx.jar &           
# 当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
# -------------------------------------------
# nohup Java -jar xxx.jar &                  
# 后台运行命令,当账户退出或终端关闭时,程序仍然运行,控制台输出到nohup.out文件
# -------------------------------------------
# nohup Java -jar xxx.jar >/dev/null 2>&1 &
# 后台运行命令, 控制台输出丢弃
# -------------------------------------------

# -------------------------------------------
# jar 包启动脚本
# $1 APP 目录
# $2 APP 名称
# $3 LOG 名称
# -------------------------------------------

APP_DIR=$1
APP_NAME=$2
LOG_NAME=$3
echo : [app dir]  $APP_DIR
echo : [app name] $APP_NAME
echo : [log name] $LOG_NAME
# -------------------------------------------
# 配置日志目录
# -------------------------------------------

LOG_DIR=$APP_DIR/logs
LOG_FILE=$LOG_DIR/$LOG_NAME
echo : [log dir] $LOG_DIR
echo : [log file] $LOG_FILE

# -------------------------------------------
# 查找应用是否正在运行,如果在运行,就杀掉这些进程
# -------------------------------------------
pid=`ps -ef | grep java |grep $APP_NAME | grep -v grep |awk "{print $2}"`
echo $pid
if [ -n "$pid" ]; then 
    echo : $APP_NAME  is  running pid=$pid
    echo : kill $APP_NAME
    kill -9 $pid
fi

cd $APP_DIR
nohup java -jar -Denv=rc $APP_NAME >/dev/null 2>&1 &
tail -f $LOG_FILE

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77360.html

相关文章

  • Docker学习笔记

    摘要:虚拟机里的的系统物理机里的系统因此当新建一个容器时,不需要和虚拟机一样重新加载一个操作系统内核。然而避免引导加载操作系统内核是个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载,返个新建过程是分钟级别的。 ...

    bawn 评论0 收藏0
  • Docker基础学习笔记

    摘要:图解结论容器之间配置信息的传递,数据容器的生命周期一直持续到没有容器使用为止。 文章目录 前言一、容器数据卷1. 什么是容器数据卷?2. 通过命令使用数据卷查看数...

    biaoxiaoduan 评论0 收藏0
  • docker入门实战笔记

    摘要:创建用户组并添加用户。默认情况下是过滤掉所有的入站规则。初始命令表示一旦容器启动,需要运行的命令,此时使用,表示什么也不做,只需进入命令行即可。1.什么是docker  docker翻译为搬运工,在这里应该可以理解为搬运应用的工具,也就是云.先了解其运用场景之后更容易对他形成深刻理解.  Docker提供了一种可移植的配置标准化机制,允许你一致性地在不同的机器上运行同一个Container;...

    Tecode 评论0 收藏0
  • Docker容器学习笔记1

    摘要:查看,则可以看到成功了一个执行命令则可以查看镜像的层级执行命令镜像标签名则可以生成一个运行程序。 Docker容器 概述 1、之前项目的部署方式的缺点 通过物理机方式部署,如图所示 showImg(https://segmentfault.com/img/bVbfn8z?w=1366&h=668); 部署非常慢 成本非常高 资源浪费 难于迁移和扩展 可能会被限定硬件厂商 2、虚拟化...

    mingde 评论0 收藏0
  • CentOS学习笔记 - 8. docker 编译基于gofabric8的java应用镜像

    摘要:所以这里一般就是执行启动我们应用的那条命令。编译运行编译好的镜像打开浏览器进行测试 编译docker镜像 1.加速docker镜像下载速度 取决于网络速度,如果不慢的话,可以先不装 https://www.daocloud.io/mirror#accelerator-doc 执行下面的命令配置加速器 curl -sSL https://get.daocloud.io/daotools...

    BingqiChen 评论0 收藏0

发表评论

0条评论

roland_reed

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<