#!/bin/bash # author xtc #APP_NAME=clic-reinsurance-0.0.1-SNAPSHOT #JAR_PATH=${pwd } #echo "jar path ~~ ${JAR_PATH}/ " #使用说明,用来提示输入参数 usage() { echo -e "\033[0;31m Usage: sh 脚本名.sh [start|stop|restart|status] \033[0m" exit 1 } #检查程序是否在运行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi } #启动方法 start(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is already running. pid=${pid} ." else nohup ${JAVA_HOME}/bin/java -jar ${APP_NAME} > ${JAR_PATH}/catalina.out 2>&1 & echo "nohup ${JAVA_HOME}/bin/java -jar ${APP_NAME} > ${JAR_PATH}/catalina.out 2>&1 &" echo -e " ${APP_NAME} start success" fi } #停止方法 stop(){ is_exist if [ $? -eq "0" ]; then kill -9 $pid else echo "${APP_NAME} is not running" fi } #输出运行状态 status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi } #重启 restart(){ stop start } JAR_PATH=$(cd $(dirname $0); pwd) for file in `ls ${JAR_PATH}/*.jar` do APP_NAME=${file} echo "$APP_NAME" done if [ ! -n "$APP_NAME" ]; then echo " jar is not exists " exit fi #根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;; esac
时间: 2024-04-21 13:26:10 浏览: 11
这是一个Shell脚本,用于启动、停止、重启或查看应用程序的运行状态。脚本通过输入参数来选择执行相应的操作,如果没有输入参数,则会输出使用说明。脚本中定义了几个函数,包括:
- usage:用于提示输入参数的使用说明。
- is_exist:用于检查程序是否在运行。
- start:用于启动程序。
- stop:用于停止程序。
- status:用于输出程序的运行状态。
- restart:用于重启程序。
脚本首先获取当前目录下的所有jar文件,然后根据输入参数选择执行相应的操作。如果输入的是start,则会检查程序是否已经在运行,如果没有运行,则会启动程序。如果输入的是stop,则会停止程序。如果输入的是status,则会输出程序的运行状态。如果输入的是restart,则会先停止程序,然后再启动程序。
相关问题
#!/bin/bash export LD_LIBRARY_PATH=/opt/FusionReplay-V12.6.7/lib:$LD_LIBRARY_PATH ./AppRun
以下是一个示例的bash脚本:
```bash
#!/bin/bash
export LD_LIBRARY_PATH=/opt/FusionReplay-V12.6.7/lib:$LD_LIBRARY_PATH
./AppRun
```
这个脚本首先设置了LD_LIBRARY_PATH环境变量,将/opt/FusionReplay-V12.6.7/lib目录添加到LD_LIBRARY_PATH中。然后,它执行了名为AppRun的可执行文件。
#!/usr/bin/expect -f和#!/bin/bash
引用中给出了一个脚本的示例,其中#!/usr/bin/expect -f是脚本的第一行,用来指定使用expect作为脚本的解释器。这意味着这个脚本将使用expect的语法和功能来执行。而#!/bin/bash是另一种脚本的解释器,用于指定使用bash作为脚本的解释器。bash是一种常用的Unix shell程序,用于执行命令和脚本。
简而言之,#!/usr/bin/expect -f用于指定使用expect解释器来执行脚本,而#!/bin/bash用于指定使用bash解释器来执行脚本。两者都是根据脚本的需要来选择合适的解释器。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [shell阶段-day12-expect](https://blog.csdn.net/qq_23995091/article/details/113571554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]