java脚本项目_java项目部署脚本 - xixingzhe的个人空间 - OSCHINA - 中文开源技术交流社区...
#!/bin/sh
#java
export JAVA_HOME=/root/java/jdk
#日志目录
export LOG_HOME=`pwd`/
#项目名称
APP_NAME=xxx.jar
#jvm参数配置
export JAVA_OPTS="-server -Xmx1g -Xms1g -Xmn512m -XX:SurvivorRatio=4 -XX:PermSize=128m -XX:MaxPermSize=256m -Xss256k -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:GCPauseIntervalMillis=200 -XX:+DisableExplicitGC -Djava.awt.headless=true "
#检查程序运行状态
checkpid(){
javaps=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ -n "$javaps" ]; then
psid=`echo $javaps | awk '{print $1}'`
else
psid=0
fi
}
###################################
#(函数)启动程序
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示程序已启动
#3. 如果程序没有被启动,则执行启动命令行
#4. 启动命令执行后,再次调用checkpid函数
#5. 如果步骤4的结果能够确认程序的pid,则打印[OK],否则打印[Failed]
#注意:echo -n 表示打印字符后,不换行
###################################
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "程序已经启动! (pid=$psid)"
echo "================================"
else
echo "启动 ..."
nohup $JAVA_HOME/bin/java $JAVA_OPTS -DLOG_HOME=$LOG_HOME -jar $APP_NAME > /dev/null 2>&1 &
echo $! > tpid
echo "启动成功!"
checkpid
if [ $psid -ne 0 ]; then
echo "(pid=$psid) [OK]"
else
echo "[Failed]"
fi
fi
}
###################################
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行
#3. 使用kill -15 pid命令会先释放自己的资源,然后在停止
#4. 执行kill命令行紧接其后,马上查看上一句命令的返回值: $?
#5. 如果步骤4的结果$?等于0,则打印[OK],否则打印[Failed]
#6. 为了防止java程序被启动多次,这里增加反复检查进程,反复杀死的处理(递归调用stop)。
#注意: 在shell编程中,"$?" 表示上一句命令或者一个函数的返回值
###################################
stop() {
checkpid
if [ $psid -ne 0 ]; then
echo -n "停止程序 ...(pid=$psid) "
kill -15 $psid
if [ $? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
fi
checkpid
if [ $psid -ne 0 ]; then
stop
fi
else
echo "================================"
echo "程序没有运行!!!"
echo "================================"
fi
}
###################################
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示正在运行并表示出pid
#3. 否则,提示程序未运行
###################################
status() {
checkpid
if [ $psid -ne 0 ]; then
echo "程序正在运行! (pid=$psid)"
else
echo "程序没有运行!!!"
fi
}
###################################
#(函数)打印系统环境参数
###################################
info() {
echo "System Information:"
echo "****************************"
echo `head -n 1 /etc/issue`
echo `uname -a`
echo
echo "JAVA_HOME=$JAVA_HOME"
echo `$JAVA_HOME/bin/java -version`
echo
echo "APP_NAME=$APP_NAME"
echo "LOG_HOME=$LOG_HOME"
echo "****************************"
}
###################################
#读取脚本的第一个参数($1),进行判断
#参数取值范围:{start|stop|restart|status|info}
#如参数不在指定范围之内,则打印帮助信息
###################################
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'status')
status
;;
'info')
info
;;
*)
echo "Usage: $0 {start|stop|restart|status|info}"
exit 1
esac
exit 0
java脚本项目_java项目部署脚本 - xixingzhe的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- java 图形 登录_java登录图形界面 - osc_994n5tsc的个人空间 - OSCHINA - 中文开源技术交流社区...
编写程序,利用JtextField和JpasswordField分别接收用户输入的用户名和密码,并对用户输入的密码进行检验.对于每个用户名有三次密码输入机会. package beizi; impor ...
- java 递归死循环_Java递归 - 感觉太煽情的个人空间 - OSCHINA - 中文开源技术交流社区...
树节点类: package cn.com.tree; public class Node { private Integer id; private Integer parentId; private ...
- java通讯方式_Java线程通讯方式 - osc_63rgy8af的个人空间 - OSCHINA - 中文开源技术交流社区...
l 休眠唤醒方式: Object的wait.notify.notifyAll Condition的await.signal.signalAll l CountDownLatch:用于某个线程A等待 ...
- php项目后的感受,PHP项目感受4 - 刘景刘恒的个人空间 - OSCHINA - 中文开源技术交流社区...
通过两周的商城项目,受益匪浅,以前自己根本没有项目经验,所以很多知识点都只是知识点而已,并没有在实践中加以熟悉和理解,很多东西以为自己记住了,知道了,可是一到用的时候却该做什么都不知道,所以在这里很感 ...
- java 写入环境变量_Java环境变量配置 - import_key的个人空间 - OSCHINA - 中文开源技术交流社区...
Java 环境变量和路径 在 Solaris 系统上,必须先设置 JAVA_HOME 和 PATH 环境变量,Sun Management Center 3.6 安装向导.设置向导和 Java 控制台 ...
- java 实现按规则自增功能_java运算符详解 - osc_74vaali6的个人空间 - OSCHINA - 中文开源技术交流社区...
java基础(2)--运算符详解 自增自减规则 自增自减就是常用的 a = a++ 或者 a = ++a;前者是后缀式,先把a赋值给a,再加一:后者是后缀式,先加一,在赋值给a;而且a++,++a并不 ...
- java方法调用机制_Java方法调用机制 - osc_bkdv2it5的个人空间 - OSCHINA - 中文开源技术交流社区...
最近在编程时,修改方法传入对象的对象引用,并没有将修改反映到调用方法中.奇怪为什么结果没有变化,原因是遗忘了Java对象引用和内存分配机制.本文介绍3个点: ① 该问题举例说明 ② 简要阐述Java内 ...
- java创建两个foo方法_Java类实例化原理 - osc_foo7glsg的个人空间 - OSCHINA - 中文开源技术交流社区...
Java对象的创建过程包括类初始化(类实例化两个阶段. 一.Java对象创建时机 (1)使用new关键字创建对象 (2)反射创建对象 使用Class类的newInstance方法 Student st ...
- java回调函数的生命_Java的回调函数 - choaklin 的个人空间 - OSCHINA - 中文开源技术交流社区...
暂且不提回调函数的各种定义,如我本人,虽然知道JavaScript的回调的使用,但是百科了回调的定义,还是觉得云里来雾里去.所以大可先从已熟悉的入手,旁推侧引它的原理,再引出Java版的实现. 因为博 ...
最新文章
- python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)...
- 谁说用 Git 一定要用命令行?试试 SourceTree 吧
- python笔记基础-Python笔记-基础
- mac 上的环境变量配置
- iOS中EXC_BAD_ACCESS解决办法
- 前端接收pdf文件_如何实现springmvc将返回的给前端的pdf文件放在浏览器里预览
- 医疗行业的售前工程师如何撰写人工智能案例申请材料
- 常见设计模式描术(看完就把它忘记~~)
- SELinux系列(十三)—默认安全上下文的查询和修改(semanage命令)
- linux应用之Lamp(apache+mysql+php)的源码安装(centos)
- C语言函数未声明错误,switch 调用函数 错误未定义???
- 测试ai模糊软件,“马赛克视频”AI还原软件被疯传!测试效果出乎意料!
- iOS 适配iPhone XR/XS/XS MAX
- 华为防火墙做单臂路由_华为单臂路由配置实例
- SAM/BAM文件格式简介(一)
- 计算机硬盘无法启动怎么办,开机后硬盘无法引导怎么办
- 一点点墨水滴在纸上写出来的字体
- 中国农业科学院培训中心职业技能等级证书及培训证书
- ffmpeg webm 提取_ffmpeg简单使用教程 转码、压制、提取、截取、合并、录屏等
- Java计算机IT编程文档
热门文章
- C语言调用自定义交换函,C语言函数篇 - personal page of Msingwen - OSCHINA - 中文开源技术交流社区...
- 区块链开发指南_区块链开发完全指南
- android传感器开发与智能设备案例实战_【我的物联网成长记2】设备如何进行选型?...
- Keepalived实现mysql高可用
- Oracle触发器5-Instead of触发器
- 优化mysql的21个建议_MySQL优化小建议
- netty 关闭chnnal_Netty 源码学习——服务端流程分析
- php 上传 excel xlsx_在PHP中创建和编辑Excel电子表格
- python 运算符重载_Python 炫技操作:模块重载的五种方法
- java数组循环扩容_Java中实现数组动态扩容的两种方法