目录
- 功能
- 使用
- 脚本
- 总结
功能
- 默认不入参是启动项目
- 支持项目启动、停止、重启:start | stop | restart
- 支持自定义Java路径和jvm参数
使用
[root@master Desktop]# .编程客栈/bin/demo-sh_start.sh start 程序名称: /root/Desktop/demo-app-sh-1.2.1-SNAPSHOT.jar 日志名称: demo-app-sh-1.2.1-SNAPSHOT Java配置: -Xmx1024M -Xms256M 程序未运行 开始启动程序 [root@master Desktop]# ./bin/demo-sh_start.sh stop 程序名称: /root/Desktop/demo-app-sh-1.2.1-SNAPSHOT.jar 日志名称: demo-app-sh-1.2.1-SNAPSHOT Java配置: -Xmx1024M -Xms256M 程序已运行,PID:[ 10864 ] 停止程序 [root@master Desktop]# ./bin/demo-sh_start.sh restart 程序名称: /root/Desktop/demo-app-sh-1.2.1-SNAPSHOT.jar 日志名称: demo-app-sh-1.2.1-SNAPSHOT Java配置: -Xmx1024M -Xms256M 程序未运行 重启程序 0
脚本
#!/bin/sh # 服务和java配置 appName=%s # 这里替换jar路径, 如:./demo-app.jar, 建议使用绝对路径 JAVA_HOME=java JAVA_OPT="-Xmx1024M -Xms256M" # 日志 logName=$(basejavascriptname ${appName} .jar) # 输出程序信息 echo "程序名www.devze.com称:" ${appName} echo "日志名称:" ${logName} echo "Java配置:" ${JAVA_OPT} # 判断是否已经启编程客栈动 v_pid=$(ps -ef | grep ${logName} | grep -v grep | awk '{print $2}') if [ -zandroid $v_pid ]; then echo "程序未运行" else echo "程序已运行,PID:[" ${v_pid} "]" fi if [ $# = 0 ]; then # 默认直接启动程序 if [ -z $v_pid ]; then echo "开始启动程序" else echo "终止本次启动" exit 1 fi # 运行java nohup ${JAVA_HOME} -jar ${JAVA_OPT} ${appName} >>${logName}.log 2>&1 & else # 停止 if [ $1 = "stop" ]; then s_killRes=$(kill ${v_pid}) echo "停止程序" ${s_killRes} exit 0 # 重启 elif [ $1 = "restart" ]; then # 重启 if [ -z $v_pid ]; then s_killRes="0" else s_killRes=$(kill ${v_pid}) fi echo "重启程序" ${s_killRes} # 运行 elif [ $1 = "start" ]; then if [ -z $v_pid ]; then echo "开始启动程序" else echo "终止本次启动" exit 1 fi else echo "未知的指令, 请输入 [start | stop | restart]" exit 1 fi # 启动 nohup ${JAVA_HOME} -jar ${JAVA_OPT} ${appName} >>${logName}.log 2>&1 & fi
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论