这篇文章只是自己学习的东西,有兴趣的同学,可以看看。
#!/bin/bash if [ $# -lt 1 ]; then echo "USAGE: $0 classname opts" exit 1 fi JAR_PATH=`ls *.jar` if [[ ! "$?" == "0" || ! -e $JAR_PATH ]]; then echo "Do you forget ./package.sh ?" exit 2 fi JAVA_VERSION=1.8 PID_FILE="../$JAR_PATH.pid" BASE_DIR=$(dirname $0) if [ "$JAVA_VERSION" == "1.8" ]; then JDK_PATH=/usr/local/jdk8 else JDK_PATH=/usr/local/jdk fi KEYWORD="$JAR_PATH" function test_java_version() { java_version=`$1/java -version 2>&1 |awk 'NR==1{ print $3 }'|sed 's/\"//g'` if [[ ! "$java_version" =~ "$JAVA_VERSION" ]];then return 1 fi return 0 } if [ -z "$JAVA_HOME" ]; then JAVA_HOME=$JDK_PATH fi if ! test_java_version "$JAVA_HOME/bin" ;then echo "$JAVA_HOME version not match" if [[ ! -d "$JDK_PATH" ]];then echo "$JDK_PATH not exist!" exit 2 fi if test_java_version "$JDK_PATH/bin"; then export JAVA_HOME="$JDK_PATH" else echo "java version not match!" exit 3 fi fi JAVA_OPTS="$JAVA_OPTS -server -Xms2g -Xmx2g -Xmn1g" JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC" JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:${HOME}/gc.log -XX:+PrintGCDetails" JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs" JAVA_OPTS="$JAVA_OPTS -XX:-OmitStackTraceInFastThrow" JAVA_OPTS="$JAVA_OPTS -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext" JAVA_OPTS="$JAVA_OPTS -jar " #JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n" JAVA="$JAVA_HOME/bin/java" # Returns 0 if the process with PID $1 is running. function checkProcessIsRunning { local pid="$1" ps -ef | grep java | grep $pid | grep "$KEYWORD" | grep -q --binary -F java if [ $? -ne 0 ]; then return 1; fi return 0; } # Returns 0 when the core is running and sets the variable $pid to the PID. function getServicePID { if [ ! -f $PID_FILE ]; then return 1; fi pid="$(<$PID_FILE)" checkProcessIsRunning $pid || return 1 return 0; } function startServiceProcess { touch $PID_FILE rm -rf nohup.log nohup $JAVA $JAVA_OPTS $KEYWORD >> nohup.log 2>&1 & echo $! > $PID_FILE sleep 0.1 pid="$(<$PID_FILE)" if checkProcessIsRunning $pid; then :; else echo "$SERVICE_NAME start failed, see nohup.log." return 1 fi return 0; } function stopServiceProcess { STOP_DATE=`date +%Y%m%d%H%M%S` kill $pid || return 1 for ((i=0; i<10; i++)); do checkProcessIsRunning $pid if [ $? -ne 0 ]; then rm -f $PID_FILE return 0 fi sleep 1 done echo "\n$SERVICE_NAME did not terminate within 10 seconds, sending SIGKILL..." kill -s KILL $pid || return 1 local killWaitTime=15 for ((i=0; i<10; i++)); do checkProcessIsRunning $pid if [ $? -ne 0 ]; then rm -f $PID_FILE return 0 fi sleep 1 done echo "Error: $SERVICE_NAME could not be stopped within 10 + 10 seconds!" return 1; } function startService { getServicePID if [ $? -eq 0 ]; then echo "$SERVICE_NAME is already running"; RETVAL=0; return 0; fi echo -n "Starting $SERVICE_NAME..." startServiceProcess if [ $? -ne 0 ]; then RETVAL=1; echo "failed"; return 1; fi COUNT=0 while [ $COUNT -lt 1 ]; do for (( i=0; i<60; i=i+1 )) do STR=`grep "Dubbo core server started" nohup.log` if [ ! -z "$STR" ]; then echo "PID=$pid" echo "Server start OK in $i seconds." break; fi echo -e ".\c" sleep 1 done break done echo "OK!" #START_PIDS=`ps --no-heading -C java -f --width 1000 | grep "$DEPLOY_HOME" |awk '{print $2}'` #echo "PID: $START_PIDS" # echo "started PID=$pid" RETVAL=0 return 0; } function stopService { getServicePID if [ $? -ne 0 ]; then echo -n "$SERVICE_NAME is not running"; RETVAL=0; echo ""; return 0; fi echo "Stopping $SERVICE_NAME... " stopServiceProcess if [ $? -ne 0 ]; then RETVAL=1; echo "failed"; return 1; fi echo "stopped PID=$pid" RETVAL=0 return 0; } function checkServiceStatus { echo -n "Checking for $SERVICE_NAME: " if getServicePID; then echo "running PID=$pid" RETVAL=0 else echo "stopped" RETVAL=3 fi return 0; } function main { RETVAL=0 case "$1" in start) startService ;; stop) stopService ;; restart) stopService && startService ;; status) checkServiceStatus ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit $RETVAL } main $1
相关推荐
这些客户端可能包括桌面应用、Web应用或其他应用程序服务器。 应用程序服务器的客户端与之交互的数据不仅仅是简单的HTML标记,而是包含了程序逻辑。例如,对于一个在线商店,应用程序服务器可能接收产品查询,然后...
云计算技术的兴起为 Web应用服务器提供了强大的计算、存储和管理能力。虚拟化技术可将物理资源转化为逻辑资源,提高资源利用率。基于云计算和虚拟化技术的 Web 应用服务器可实现动态资源分配、弹性伸缩和高可用性等...
Web应用安全是一个重要的议题,尤其是随着互联网的普及和数字化转型的加速,Web应用已经成为企业和服务提供商的核心组成部分。Web应用服务器是支撑这些应用的关键基础设施,它们不仅处理HTTP协议,还负责处理动态...
5. **服务自动化管理**: `stop.txt`可能包含了停止Tomcat服务的命令,如`/path/to/tomcat/bin/shutdown.sh`。此外,为了方便管理和监控,可以使用`systemd`服务单元文件创建自启动服务。 6. **权限与安全**: 在...
自动化部署是指通过脚本或工具自动完成应用的构建、测试和部署到生产环境的过程。这通常涉及版本控制、构建工具、持续集成/持续部署(CI/CD)系统以及各种配置管理工具。自动化部署可以显著提升团队的生产力,尤其是在...
ASP(Active Server Page,活动服务页面)是微软为IIS服务器开发的一种专用接口,允许开发者使用VBScript或JavaScript编写Web应用程序。它与IIS紧密结合,支持强大的数据库连接功能。 ##### (三)脚本语言与其它...
8. **AJAX(Asynchronous JavaScript and XML)**:虽然不是服务器脚本本身,但AJAX技术允许JavaScript在不刷新整个页面的情况下与服务器交换数据,提升了Web应用的用户体验。 9. **RESTful API**:使用HTTP方法...
Web应用安全开发规范是针对当前互联网环境中Web应用面临的安全威胁而制定的一套详细的指导原则。随着Web技术的快速发展,黑客攻击手段不断升级,Web安全问题变得尤为重要。许多开发者由于缺乏安全意识,导致开发出的...
这种方式常用于分布式系统中,例如在Web应用中执行服务器端的逻辑操作。 3. **安全性**:由于脚本服务器需要处理用户提交的代码,因此安全是个重要考虑因素。服务器需要有良好的输入验证机制,防止恶意脚本注入攻击...
- 如果是Web应用,将WAR文件部署到Tomcat的webapps目录下,或者通过`tomcat.sh`脚本进行部署。 - 使用`service.sh`将应用注册为系统服务,便于管理。 7. **监控和日志**: - 在生产环境中,通常会配置shell脚本...
7. 脚本文件:如构建脚本、测试脚本等,用于自动化工作流程。 8. 配置文件:项目配置,如Webpack配置、Babel配置等。 9. README文件:介绍项目的使用方法和开发指南。 总的来说,“超漂亮WEB前台应用”可能是一个...
- **结果可视化**:脚本的输出结果可以通过图表、图像或其他形式在 Web 界面上展示,便于用户理解。 **3. 安装与配置** 安装 Wooey 通常涉及以下步骤: 1. 安装 Django 和其他依赖库。 2. 克隆 wooey-Wooey-026a51...
IIS支持多种网络协议,如HTTP、HTTPS、FTP、SMTP等,使得企业能够构建和管理复杂的Web应用程序和网站。 【安装与默认设置】 安装IIS通常可以通过Windows的“控制面板”中的“添加/删除程序”进行。默认情况下,IIS...
Web应用程序是互联网上的一种软件系统,它允许用户通过Web浏览器进行交互,实现各种功能,如在线购物、社交媒体、数据管理等。深入理解Web应用程序的结构、工作原理和协议对于开发高效、安全的Web应用至关重要。 1....
通过学习《Web应用开发技术:JSP(第二版)》,读者可以掌握创建高效、可维护的Web应用所需的技术,包括数据库连接、会话管理、安全控制等方面。提供的源代码能帮助读者更好地理解书中的实例,从而将理论知识转化为...
8. **Elastic Beanstalk**:用于简化部署Web应用程序和微服务的平台。脚本可能包含部署应用到Beanstalk环境的步骤。 9. **监控与报警**:使用CloudWatch监控AWS资源的性能指标,并设置警报。脚本可能涉及配置警报...
通过Shell脚本,运维人员可以高效地处理各种任务,如数据库管理、系统安全和Web服务维护。Python脚本则提供了更高级的功能,如数据分析、自动化工具开发和网络通信。这些脚本的使用不仅提高了工作效率,还增强了系统...
定时启动Tomcat应用服务器批处理脚本是系统管理员常用的一种工具,用于自动化管理Tomcat服务,确保服务在特定时间自动启动,提高运维效率,降低人工干预的需求。下面将详细介绍这个主题及其相关知识点。 一、批处理...
《WEB之困-现代WEB应用安全指南》是一本深度探讨现代WEB应用安全问题的专业书籍,旨在帮助开发者和安全专家理解并解决在构建和维护WEB应用过程中可能遇到的安全挑战。本书全面覆盖了WEB应用安全的各个层面,从基础的...
【标题】"基于Java的Docker图形化界面管理WEB应用"揭示了这个项目的核心内容,即使用Java技术来开发一个能够对Docker容器进行图形化管理的Web应用程序。Docker作为一个流行的容器化平台,允许开发者将应用及其依赖...